Интеграция Хадсон с 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?

5 ответов

Решение

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

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

В конфигурации проекта на Гудзоне:

Выполнить пакетную команду 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

В C:\MsBuildNunit есть XSLT, а также msxsl.exe, который поставляется Microsoft.

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

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

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

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

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

Я смог использовать вариант командной строки "зависания" и плагин 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

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

TestResults\HudsonJobTestResults.trx

И это все!

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

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

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

Другие вопросы по тегам