2016-09-16 7 views
0

У меня возник интересный вопрос. Я создал шаг сборки TeamCity, который запускает модульные тесты с помощью консоли NUnit3 (через командную строку).NUnit3 как часть buildstep в TeamCity бросает «Процесс, выходящий с кодом -2»

настройки шага сборки:

Команда исполняемыми: SomeRootFolder \ Packages \ NUnit.ConsoleRunner.3.4.1 \ Tools \ nunit3-console.exe Параметры команды: SomeRootFolder \ Solution \ Project. "! кот = Slow" SLn --process = одиночный --timeout = 300000 --where

Сложение шаг начинает выполняться, как ожидалось:

> [01:42:29][Step 2/4] NUnit Console Runner 3.4.1 
> [01:42:29][Step 2/4] Copyright (C) 2016 Charlie Poole 
> [01:42:30][Step 2/4] Runtime Environment 
> [01:42:30][Step 2/4] OS Version: Microsoft 
>       Windows NT 6.3.9600.0 
> [01:42:30][Step 2/4] CLR Version: 
> [01:42:30][Step 2/4] 4.0.30319.34014 
> [01:42:30][Step 2/4] Test Files 
> [01:42:30][Step 2/4] SomeRootFolder\Solution\Project.sln 
> [01:42:30][Step 2/4] 
> [01:42:30][Step 2/4] Test Filters 
> [01:42:30][Step 2/4] Where: cat != Slow 
> Execution of 1000+ tests 
> [02:37:32][Step 2/4] Test Run Summary 
> [02:37:32][Step 2/4] Overall result: Failed 
> [02:37:32][Step 2/4] Test Count: 1337, Passed: 1289, Failed: 0, Inconclusive: 0, Skipped: 48 
> [02:37:32][Step 2/4] Skipped Tests - Ignored: 48, Explicit: 0, Other: 0 
> [02:37:32][Step 2/4] Start time: 2016-09-15 23:42:52Z 
> [02:37:32][Step 2/4]  End time: 2016-09-16 00:37:26Z 
> [02:37:32][Step 2/4]  Duration: 3273.646 seconds 
> [02:37:32][Step 2/4] 
> [02:37:32][Step 2/4] Results (nunit3) saved as TestResult.xml 
> [02:37:33][Step 2/4] Process exited with code -2 
> [02:37:33][Step 2/4] Step Nunit tests - investigation - full build (Command Line) failed 

Пока по крайней мере, один тест не удается, выполнение завершается с кодом 0, и все, как сообщается в Team City, без выпуска (сборка шага помечаются как не удались, статистические данные о неудачных/пройденных тестах представлены и т.д.)

Как только все тесты пройдут, выстройте выходы с кодом -2, хотя кажется, что все было в порядке.

Я также попытался протестировать только отдельные части (конкретные сборки) и снова, этап сборки завершен без проблем, и он был зеленым (вышел с кодом 0).

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

ответ

1

-2 - код выхода, если обнаружена неправильная сборка.

Запуск на .sln - NUnit должен решить, какая из встроенных сборок релевантна для сборок NUnit и пытаться их запускать. Так как файлы .sln и .proj изменяют формат и время, это не идеальный бит функциональности, иногда файлы пропущены.

Попробуйте перечислить все тестовые DLL последовательно в командной строке и посмотреть, разрешает ли это проблема. например

Command parameters: a.dll b.dll c.dll --process=single --timeout=300000 --where "cat != Slow" 

Кроме того, должна быть возможность посмотреть на TestResult.xml и поиск «сборки» компонентов, помеченных как «недопустимый». Если вы обнаружите, что NUnit пытается запустить тип проекта, его следует игнорировать, вы можете отправить bug report.