Интеграция Хадсона с MS Test?

Можно ли интегрировать Hudson с MS Test?

Я настраиваю меньший CI-сервер на моей машине разработки с помощью Hudson прямо сейчас, так что у меня могут быть некоторые статистические данные (например, FxCop и предупреждения компилятора). Конечно, было бы неплохо, если бы он мог просто запускать мои модульные тесты и представлять их результаты.

До сих пор я добавил в Hudson следующую пакетную задачу, которая заставляет ее правильно запускать тесты.

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll

Однако, насколько я знаю, Хадсон не поддерживает анализ результатов MS Test. Кто-нибудь знает, могут ли файлы TRX, созданные с помощью MSTest.exe, преобразовать в JUnit или NUnit (потому что они поддерживаются Hudson), или есть ли другой способ интеграции тестов MS Test с Hudson?

Ответ 1

У Hudson есть новый плагин для MSTest. Просто укажите расположение файла .trx, и работа будет выполнена для вас. Меня не удивило бы, если бы плагин использовал решение Allen.

Ответ 2

Я хотел написать это как руководство и разработать плагин, но я не нашел его. Я знаю, что этот вопрос старый, но я УВЕРЕН, что кто-то другой хочет того же, что и здесь.

В конфигурации проекта на Hudson:

Выполнять пакетную команду Windows


SET MSTest="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"
SET XSLParser="C:\MsBuildNunit\msxsl.exe"

SET TestDLL=path-to-your-test-projects.dll
SET TestOutFILE=TestResults\some-unique-filename.trx
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml
SET XSLFile=c:\MsBuildNunit\MSBuild-to-NUnit.xslt

MKDIR TestResults

%MSTest% "/testcontainer:%TestDLL%" /nologo /resultsfile:%TestOutFILE% 

%XSLParser% %TestOutFILE% %XSLFile% -o %TransformedOutputFile%

SET ERRORLEVEL=0

Затем установите флажок "Опубликовать отчет о результатах тестирования NUnit" и "XML-теги отчета об испытаниях" введите

TestResults/*.xml

Существует XSLT в C:\MsBuildNunit, а также файл msxsl.exe, который поступает от Microsoft.

Вы можете загрузить MSBuild-to-NUnit.xslt из здесь и получить msxsl.exe из microsoft здесь, или вы можете просто получить сжатую копию моей папки MsBuildNunit, которая содержит xslt и exe здесь

При запуске он вызывает MSTest.exe, который запускает тесты и выводит формат в формате microsofts trx (xml). Затем он вызывает msxsl.exe с xslt и trx и переводит его в формат nunits xml. В конце сборки Хадсон подбирает его, как и любой другой результат теста Nunit, и вам хорошо идти.

Отредактировано для добавления: Я забыл упомянуть, с этим xslt мы получаем полные результаты теста. У нас есть несколько тестовых проектов и несколько dll, и мы получаем отличную обратную связь с возможностью графиков трендов, просмотра тестов по имени, просмотра статусов тестов, и, если это ошибки, мы получаем сообщение об ошибке вместе со трассировкой стека. В основном почти все, что вы получите с Nunit.

Изменить (снова): я только что добавил продолжительность теста в преобразовании, чтобы он теперь появился в Хадсоне! Кажется, отлично работает для наших тестов.

Изменить: я попробовал новый плагин MSTest, и в настоящее время он не поддерживает разбор нескольких файлов TRX, всего 1, поэтому в настоящее время это ваше единственное решение, если вы похожи на нас и имеете несколько тестовых сборок, которые вы должны запускать через MSTest.

Ответ 3

Я смог использовать вариацию командной строки "hangy" и плагин MSTest для успешного запуска и анализа/публикации тестовых примеров. Самое большое изменение, которое я сделал, это указать выходной файл для mstest.exe и использовать плагин MSTest для использования этого файла (никаких подстановочных знаков... не должно быть фактического имени файла). Например, следующий шаг сборки:

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:MyProject1.Test/bin/Debug/MyProject1.Test.dll  /testcontainer: MyProject2.Test/bin/Debug/MyProject2.Test.dll /resultsfile:TestResults\HudsonJobTestResults.trx

выход 0

Обратите внимание, что "файл результатов" относится к рабочему пространству Job. Таким образом, файл результатов плагина MSTest для разбора:

TestResults\HudsonJobTestResults.trx

И что это!

Ответ 4

У Hudson есть Plot Plugin, который можно использовать для построения общих данных. Это не самый простой плагин для настройки и использования, если у вас есть несколько точек данных на граф, но если вы можете проанализировать вывод MS Test и создать входные файлы для плагина, вы можете, по крайней мере, рассказать о тенденциях неудачных, успешных и общие тесты.

Ответ 5

Я не смог использовать Hudson для анализа результатов MS Test для исторических целей, но я, по крайней мере, смог выяснить, что если вы используете MSBuild и задачу Exec, сборка Hudson будет правильно помечен как "сбой", если какой-либо из тестов завершился неудачей.

<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe" /testcontainer:"MyAssembly.dll"" />