2013-04-05 5 views
0

Запуск SpecRun из командной строки как части установки непрерывной интеграции, а недавно проигнорированный (@ignore) тест сгенерировал код выхода 120, когда SpecRun завершен.SpecRun возвращает код выхода 120 с помощью тестов @ignore

В настоящее время мы разбиваем сборку на любой код выхода, не равный 0 (универсальный индикатор успеха!).

Что означает код выхода 120? Это просто «Тест был проигнорирован»? или это подразумевает больше?

Какие еще значения возвращаются?

Образец сборки ниже. Мы собираем все коды выхода (в настоящее время 1 SpecRun задачу, поэтому только один выход кода собираемая), и распечатать на «Коды выхода»

58> Done. 
58> Result: all tests passed (5 ignored) 
58> Total: 478 
58> Succeeded: 473 
58> Ignored: 5 
58> Pending: 0 
58> Skipped: 0 
58> Failed: 0 
58> 
58> Execution Time: 00:00:42.4550000 
58> 
58> exit codes 120 
58> 
58>Build FAILED. 
58> 
58>Time Elapsed 00:00:44.21 
========== Rebuild All: 57 succeeded, 1 failed, 0 skipped ========== 
+0

58 проектов!?! Вам нужно NDepend! :-) – AlSki

+0

@AlSki, har, да, мы делаем то, что совсем * другая тема вообще;) –

ответ

2

я нашел список кодов ошибок в форуме: https://groups.google.com/forum/?fromgroups=#!topic/specrun/vPQ7z2kpkbs

После заказа списка по коде ошибки вы получите:

Unknown = 0, 
Succeeded = 110, 
Ignored = 120, 
Pending = 210 
NothingToRun = 310, 
Skipped = 320, 
Inconclusive = 410, 
CleanupFailed = 420, 
RandomlyFailed = 430, 
Failed = 440, 
InitializationFailed = 450, 
FrameworkError = 510, 
ConfigurationError = 520, 

на основе этого списка мы используем следующий сценарий командной строки на сервере сборки для выполнения тестов:

SpecRun.exe [...] 

if errorlevel 200 exit /b %errorlevel% 

exit /b 0 

Мы используем команду exit для возврата кода ошибки. Для более высоких кодов ошибок ошибок (> = 200) мы возвращаем код ошибки, чтобы разбить сборку. Однако коды ошибок ниже этого предела считаются успешными, и мы возвращаем 0.

Используя этот предел (200), прецеденты и проигнорированные случаи считаются успешными, а все остальное ломает сборку. Если вы также хотите разрешить ожидающие тесты (210), вы можете просто проверить более высокий код ошибки в IF.