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

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

19 голосов
/ 09 декабря 2008

Можно ли интегрировать Хадсон с 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 ]

17 голосов
/ 04 февраля 2009

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

В конфигурации проекта на 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 и переводит его в формат xunits xml. В конце сборки Хадсон забирает его, как и любой другой результат теста Nunit, и все готово.

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

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

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

16 голосов
/ 10 февраля 2009

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

2 голосов
/ 06 июля 2009

Мне удалось использовать разновидность командной строки "hangy's" и плагин 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

И это все!

0 голосов
/ 20 января 2009

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

<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe" /testcontainer:"MyAssembly.dll"" />
0 голосов
/ 09 декабря 2008

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

...