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

当使用Jenkins和NUnit时,如何使未记录的SpecFlow测试失败(不被标记为不确定)?,jenkins,nunit,specflow,Jenkins,Nunit,Specflow,我们在工作中使用VisualStudio中的SpecFlow和NUnit。非常有用,等等。一旦我们完成了开发,签入的代码将进入构建服务器,该服务器使用Jenkins构建并运行所有测试。非常有帮助等等 然而,有一个恼人的漏洞:如果你在SpecFlow中使用了一个没有定义的步骤,那么会使用一个默认的步骤定义,将测试标记为非决定性,然后b/NUnit会忽略非决定性的测试(显然MSTest会失败),然后c/Jenkins不会检测到问题并通过构建。这意味着我们的构建服务器可以通过甚至没有正确定义的测试 因

我们在工作中使用VisualStudio中的SpecFlow和NUnit。非常有用,等等。一旦我们完成了开发,签入的代码将进入构建服务器,该服务器使用Jenkins构建并运行所有测试。非常有帮助等等

然而,有一个恼人的漏洞:如果你在SpecFlow中使用了一个没有定义的步骤,那么会使用一个默认的步骤定义,将测试标记为非决定性,然后b/NUnit会忽略非决定性的测试(显然MSTest会失败),然后c/Jenkins不会检测到问题并通过构建。这意味着我们的构建服务器可以通过甚至没有正确定义的测试

因此,任何人都可以: -告诉我如何让SpecFlow在缺少的步骤上抛出错误?(在web上找不到它或任何东西的选项)或: -告诉我如何让NUnit将非决定性测试视为失败?(再一次,在网上找不到它或任何东西的选项)或: -不知何故,让詹金斯接受那些没有定论的结果,并将其视为失败


将考虑所有建议,包括左栏建议!谢谢。

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

有关文档,请参阅。这里我们感兴趣的配置是
missingorpendingstepsootcome

默认设置为:

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

missingOrPendingStepsOutcome="Error"

查看:-有一个可用的配置选项…看起来您有一个很好的答案。以下是一些背景资料,说明问题存在的原因。。。NUnit有四种基本结果状态:通过、失败、跳过和不确定。MsTest和VisualStudio有三种。对我们来说,不确定意味着“这根本没有提供任何关于失败或成功的信息”,因此这肯定不是你想要的,因为你错过了一步。只是未来的参考;评论不是永久性的,将来可能会删除。最好把所有相关的细节都写进你的答案中,而不是仅仅引用你的评论。干杯我遇到了同样的问题,在设置missingorpendingstepsoutcom=“Error”之后,在Visual Studio上运行这些测试场景时失败了,但在Azure DevOps(运行VSTest)上运行这些场景时仍然跳过它们。