Как запустить NUnit Runner в Atlassian Bamboo с помощью NUnit 3

Я использовал NUnit Runner в Atlassian Bamboo (последняя версия) с NUnit 2, но после обновления до NUnit 3 он больше не работает. Кажется, что-то изменилось с командной строкой в ​​NUnit 3. Кто-нибудь знает, как заставить работать NUnit 3 в Atlassian Bamboo? Или разработчики NUnit могут рассмотреть обратную совместимость для этого критического изменения?

Я получаю следующую ошибку:

Неверный аргумент: -xml=TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml

Спасибо

4 ответа

Самое простое решение - создать bat-файл, который заменяет аргумент -xml на --result.

Создайте файл bat в каталоге приложения Nunit (по умолчанию C:\Program Files (x86)\NUnit.org\nunit-console) и скопируйте в него следующие строки.

@echo off 
SET "var=%*"
CALL SET var=%%var:-xml=--result%%
nunit3-console.exe %var%;format=nunit2

Затем используйте адрес файла bat в качестве пути к исполняемому файлу Nunit.

Кроме того, к вашему сведению, опция -xml устарела в течение 3 лет!

Я предполагаю, что бамбук генерирует параметры командной строки для NUnit на основе настроек, предоставленных пользователем. Поскольку NUnit 3.0 является таким большим изменением по сравнению с серией v2, разработчики могут захотеть рассматривать его как совершенно новую платформу. Фактически, движок NUnit 3.0 делает именно это, рассматривая NUnit V2 как "чужую" среду и используя специальный драйвер для запуска своих тестов.

Надеемся, что команда Atlassian обновит Bamboo для поддержки NUnit 3 в ближайшее время. Я бы предложил подать запрос с ними. Команда NUnit будет рада помочь им, если у них возникнут вопросы.

NUnit не будет поддерживать обратную совместимую командную строку, но вы, вероятно, можете заставить Bamboo работать сейчас, изменив задачу выполнения теста.

Я не использовал Bamboo, но в AppVeyor нам пришлось отключить автоматическое обнаружение и запуск теста, а затем вместо использования встроенной задачи NUnit мы выполняем новую консоль nunit3 напрямую, передавая тестовые сборки.

Если Bamboo анализирует и отображает результаты теста, вы можете поручить NUnit 3 создавать XML в формате версии 2 с помощью команды --result=TestResults.xml;format=nunit2

Вы получаете эту проблему как nunit-3 не использует -xml флаг и заменяется --result, Бамбуковый бегун монахини не обновляется и все еще генерирует флаг, используемый старой монахиней.

Создайте файл bat со следующим содержимым. Вместо того, чтобы использовать исполняемый файл nunit из бамбука, используйте файл bat.

@echo off 
SET projectvar=%1
SET xmlvar=%2
SET executable=C:\Program Files (x86)\NUnit-3.4.1\bin\nunit3-console.exe
CALL SET xmlvar=%%xmlvar:-xml=--result%%
SET outputvar=%3;format=nunit2
SHIFT
SHIFT
SHIFT
SET remvar=%1
:loop
SHIFT
if [%1]==[] GOTO afterloop
SET remvar=%remvar% %1
GOTO loop
:afterloop
%executable% %projectvar% %xmlvar% %outputvar% %remvar%
Другие вопросы по тегам