2014-01-14 5 views
17

я пытаюсь настроить MSTest сборки плагина на Дженкинса, но I'm получаю следующее сообщение об ошибке:Ошибка при запуске MSTest на Дженкинс

Path To MSTest.exe: mstest.exe 
Result file was not found so no action has been taken. file:/C:/Program%20Files%20(x86)/Jenkins/jobs/SoftwrenchvNext/workspace/TestResult.trx 
FATAL: null 
java.lang.NullPointerException 
    at org.jenkinsci.plugins.MsTestBuilder.perform(MsTestBuilder.java:144) 

Конфигурация просто указывает TestResult.trx, как ResultFileName. Этот файл не поддерживается версиями, и я ожидаю, что он будет создан для каждой сборки.

Что нужно сделать для этого?

+0

Имея ту же самую проблему. Вы когда-нибудь это решали? –

ответ

20

У меня тоже было такое же сообщение об ошибке!

Рекомендация заключается в замене шага «Run unit tests with MSTest». с шагом «Выполнять пакетную команду Windows». Это сработало для меня.

Команда

del TestResults.trx 
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx 

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

Протокол испытаний TRX файл

TestResults.trx 

Удачи!

Кроме того, вы можете «имитировать» функциональность «Продолжить неудачу» с вызовом «ВЫХОД», как показано ниже.

del TestResults.trx 
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx /nologo 
EXIT /B 0 
+4

Плагин MSTest для Jenkins не поддерживает пробелы в пути к рабочему пространству. –

+7

Если это правда, это глупо, потому что путь установки по умолчанию имеет пробелы. –

+0

стыдно знать, что единственным решением является сценарий один ... –

24

После некоторого исследования я смог MSTest работать в Дженкинс, выполнив следующие действия:

Выберите Управление Дженкинс

enter image description here

Изнутри Управление Дженкинс выберите Настройка системы

enter image description here

В Настройка системы вам нужно будет найти MSTest и добавить вашу конфигурацию MSTest

enter image description here

Введите конфигурацию, как вы считаете нужным. Шахта выглядит следующим образом:

enter image description here

Сохраните конфигурацию, а затем перейти в свой проект сборки и настроить соответствующие элементы, как показано ниже:

enter image description here

Одна вещь, чтобы отметить, что я сделал не следует ни одному из шагов, перечисленных на сайте автора, потому что они, похоже, не имеют для меня никакого смысла. Однако я прочитал код и потратил некоторое время на рытье и понял, что недостающая часть находится на странице «Конфигурация системы» Дженкинса.

Cheers!

+0

Отличный совет - работает для меня! –

+0

Работал для меня тоже. Теперь мне нужно выяснить, почему Дженкинс игнорирует мои тестовые категории. – GrahamJ

0

В конце концов я отказался от настройки MSTest через простые панели - он не найдет тестовую DLL, так как парень выше, я использовал командную команду. Я добавил мою командную команду ниже, потому что она решает некоторые проблемы с предыдущими ответами, что они не учитывают, что вам нужно удалить файл .trx перед каждым прогоном или дать ему уникальное имя или тесты не удастся.

Вот мое решение работает в Дженкинс в качестве команды пакетного:

"C:Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/MSTest.exe" /resultsfile:"%WORKSPACE%/MyAppTest_%BUILD_NUMBER%.trx" /testcontainer:"%WORKSPACE%/Components/ebox2/Central/MyApp/MyAppWeb/trunk/MyAppTest/bin/Release/MyAppTest.dll" /nologo /category:Build 

Обратите внимания на включении% BUILD_NUMBER% во имени .trx файла, который обходит проблему рабочих мест неудовлетворительных из-за дубликат .trx файл.

Обратите внимание, что/category: Build позволяет вам выбирать те тесты, которые вы хотите. Вы создали категорию в самих тестах:

[TestCategory("Build"), TestMethod()] 

Я использую это, потому что у меня есть некоторые тесты Selenium, которые я не понял, как работать в Дженкинс еще, или, если это возможно.

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