2013-04-05 42 views
0

從從命令行運行SpecRun作爲持續集成設置的一部分,並在最近返回退出代碼120的忽略(@ignore)測試所產生的120的退出代碼時SpecRun完成。SpecRun與@ignore測試

目前,我們打破任何退出代碼不等於0的版本(通用成功指標!)。

退出碼120是什麼意思?它只是「一個測試被忽略」嗎?或者它意味着更多?

還有其他什麼值返回?

下面的示例構建輸出。我們收集所有的退出代碼(目前1個SpecRun任務,所以只有1退出代碼收集),並打印出「退出代碼」

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 2013-04-06 10:03:12

+0

@AlSki,哈,是的,我們這樣做完全是*另一個話題;) – 2013-04-06 14:14:15

回答

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中檢查更高的錯誤代碼。