2008-12-09 4 views
19

Можно ли интегрировать Hudson с MS Test?Интеграция Хадсона с MS-тестом?

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

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

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

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

ответ

16

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

0

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

+0

Спасибо за подсказку. Это звучит как последнее средство - возможно, было бы проще преобразовать формат .TRX (XML) в формат JUnit/NUnit с использованием XSLT или так далее. – hangy 2008-12-09 15:18:03

0

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

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

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

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

Execute партии команда 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" и "Отчет о проведении испытаний XMLs" введите

TestResults/*.xml

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

Вы можете скачать MSBuild к NUnit.xslt от here и получить msxsl.exe от майкрософт here или вы можете просто получить архивную копию моей папки MsBuildNunit, содержащую XSLT и ех here

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

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

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

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

+0

Это выглядит великолепно, спасибо! Я могу попробовать попробовать завтра, в зависимости от того, что может предложить этот новый плагин MSTest. – hangy 2009-02-17 16:23:14

+0

Я только узнал, что плагин MSTest не поддерживает синтаксический анализ нескольких файлов trx, поэтому у этого решения есть над этим. – 2009-02-17 16:38:06

2

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

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

TestResults\HudsonJobTestResults.trx 

И все!

Смежные вопросы