2013-07-30 44 views
7

当单元测试失败时是否可以停止TeamCity构建(整个构建,即它不会执行后续步骤)?理想情况下,我也想要终止当前正在执行的步骤,在我的情况下这将是Nunit Test Runner。在我的情况下,如果一个单元测试失败,继续构建就没有意义了。我看过失败条件,但我认为它们不适用于构建继续运行。TeamCity - 当测试失败时停止构建

功能要求:http://youtrack.jetbrains.com/issue/YTF-3275

+0

不完全是你想要的,但关闭:http://stackoverflow.com/questions/15254581/teamcity-running-build-steps-even-when-tests-fail – adrianbanks

+1

它很接近但没有雪茄,虽然你只是提醒我我需要小心这一点。有一个解决方案,请查看http://youtrack.jetbrains.com/issue/TW-17002的最新评论。然而,这不是我想要的,我希望当测试失败时,该步骤会停止执行。 –

回答

3

您可以使用NUnit,console.exe做到这一点。 相应的官方文档(http://nunit.org/index.php?p=consoleCommandLine&r=2.6.2),它提供了一个完全符合你需要的/ stoponerror开关。

它也可以生成一个可以由teamcity解析的XML输出(为此有一个构建功能)以填充“测试”选项卡。

+0

这似乎是唯一的方法来做到这一点,它是hackish,我不喜欢它,所以我已经联系TeamCity,看看我是否可以提交功能请求。 –

+0

这是8.0.5的情况吗?似乎现在应该修复它。 XUnit或MSTest支持更好吗? –

6

如您所述,TeamCity可以在NUnit测试中以“只有在构建状态成功”步骤执行条件时才能运行测试失败的进一步构建步骤。但是,这并不会使测试停止,直到完成步骤。

相关的功能请求是TW-23766

我现在可以考虑的唯一解决方法不是使用NUnit测试运行器并实现构建脚本中的逻辑。例如,像曼努埃尔那样使用nunit-console.exe。如果您选择遵循此路线,请考虑使用TeamCity Addin for NUNit

+0

这是正确的解决方案,谢谢先生! – Gent

相关问题