Как запустить 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%