2015-12-02 6 views
7

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

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

Invalid argument: -xml=TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml

Спасибо вам

+0

Попробуйте использовать мой вариант, описанный здесь http://stackoverflow.com/questions/40087902/bamboo-nunit-parser-task-incorrectly-parses-the-results-from-nunit3-console-exe – Tatiana

ответ

1

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

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

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

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

1

Кроме того, FYI, то -xml опция устарела на 3 года!

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

7

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

Создайте файл bat в каталоге Nunit runner (по умолчанию 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 bat как исполняемый путь Nunit runner.

+0

I я получаю сообщение об ошибке, что nunit3-console.exe не является признанной командой @Bashir – wintersolider

+1

Извините за поздний ответ, если вы установили бегун для установки 3, вы должны иметь nunit3-console.exe в установочной папке (по умолчанию C: \ Program Файлы (x86) \ NUnit.org \ nunit-console), и вы должны сохранить файл bat в той же папке, так что файл bat должен иметь файл nunit3-console.exe, кстати, вы можете попробовать использовать полный путь для nunit3-console.exe. – Bashir

+0

Поместите кавычки вокруг команды, если путь содержит пробелы. Последний оператор выглядит следующим образом: ''% ~ dp0nunit3-console.exe "% var%; format = nunit2' –

0

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

Создайте файл 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% 

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

  • Нет связанных вопросов^_^