CruiseControl和MSTest:如果测试失败,那么构建失败
问题描述:
我试图将MSTest(Visual Studio 2010版本)集成到Cruise Control中。我可以将测试报告显示在构建报告中,包括显示失败的测试。但是,即使测试失败,CruiseControl构建仍然“成功”(例如,在CCTray中,构建变为绿色)。在构建Web页面中,它显示'套件运行:0','测试运行:0'等。CruiseControl和MSTest:如果测试失败,那么构建失败
我希望如果测试失败,构建失败(即'变红') 。
我在网上搜索了所有内容,并且遵循了我能找到的每一条建议,但都无济于事。任何帮助和/或建议将不胜感激。提前致谢! :)
答
部分问题是msbuild.exe
在测试完成时返回"true"
退出代码($?)(而不是测试通过)。您需要检查ResultsSummary
部分(特别是计数器"passed"
和"executed"
)的* .trx
结果文件。
例如Jenkins
可以将* .trx
转换为它自己的(jUnit
)格式来解释这些格式。
我有它运行MSTEST指定输出文件,而随后与失败以下检查,然后用非零状态退出(这将让詹金斯知道测试失败)批处理脚本:
findstr "testsFailed=""[^0]""" "C:\Jenkins\workspace\YOUR_PROJECT\YOUR_RESULTS.trx" >"C:\Jenkins\workspace\YOUR_PROJECT\YOUR_RESULTS.out" && exit 1