使用 Jenkins 和 NUnit 时如何使未记录的 SpecFlow 测试失败(不被标记为不确定)?

Kya*_*alo 4 nunit specflow jenkins

我们在工作中使用 Visual Studio 中的 SpecFlow 和 NUnit。非常有用,等等。一旦我们完成开发,签入的代码就会转到构建服务器,该服务器使用 Jenkins 来构建和运行所有测试。非常有帮助等等。

但是,有一个恼人的漏洞:如果您在 SpecFlow 中使用了未定义的步骤,则会使用默认步骤定义,该定义将测试标记为“不确定”,然后 b/ NUnit 会忽略“不确定”测试(显然 MSTest 未能通过这些测试)相反),然后 c/ Jenkins 没有检测到问题并通过了构建。这意味着我们的构建服务器可以通过甚至未正确定义的测试。

那么,任何人都可以: - 告诉我如何让 SpecFlow 在缺少的步骤上抛出错误?(无法在网络上找到它的选项或任何内容)或者: - 告诉我如何让 NUnit 将不确定的测试视为失败?(再一次,找不到它的选项或网络上的任何内容)或者: - 以某种方式让詹金斯拾取不确定的结果并将其视为失败?

所有建议都将被考虑,包括左外野的建议!谢谢。

Kya*_*alo 5

有一个配置选项可以更改此行为。

请参阅此处的文档。我们在这里感兴趣的配置是missingOrPendingStepsOutcome.

默认设置是:

missingOrPendingStepsOutcome="Inconclusive"
Run Code Online (Sandbox Code Playgroud)

我们只需更改(或添加设置)如下:

missingOrPendingStepsOutcome="Error"
Run Code Online (Sandbox Code Playgroud)