Интеграция Хадсон с 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 и сгенерировать входные файлы для плагина, вы можете по крайней мере построить график неудачных, успешных и Всего тестов.