2

从命令行运行 SpecRun 作为持续集成设置的一部分,最近一个被忽略的 ( @ignore) 测试在 SpecRun 完成时生成了 120 的退出代码。

目前,我们在任何不等于 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 ==========
4

1 回答 1

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 中的更高错误代码。

于 2013-04-17T22:02:51.053 回答