Specflow 场景大纲未按预期工作
Posted
技术标签:
【中文标题】Specflow 场景大纲未按预期工作【英文标题】:Specflow scenario outline not working as expected 【发布时间】:2018-08-02 07:52:57 【问题描述】:Visual Studio 2017 C#
我发现运行场景大纲会多次运行测试,所以当我构建时,我可以在测试运行器中看到示例行中的所有测试。 当我执行其中一个测试时,当我运行单个测试而不是父组时,它似乎执行了每个示例和行。
这也发生在为它创建的 Jenkins 作业中,它检查代码构建和执行的新副本。这项工作花了 7 个小时,因为每条线都在运行每个测试,所以如果我有 10 条线,它会运行 100 次,因为每条线会运行 10 次,这意味着每个测试会执行 10 次。
这是如何发生的,您如何预防。
【问题讨论】:
【参考方案1】:场景大纲是带有参数的场景。您可以在一个或多个示例表中指定它们。表格中的每一行都是一个示例,因此是一个场景。
它们就像 XUnit 中的理论。
这是 Gherkin 参考文档 (https://cucumber.io/docs/reference#scenario-outline) 中的一个示例:
Scenario Outline: feeding a suckler cow
Given the cow weighs <weight> kg
When we calculate the feeding requirements
Then the energy should be <energy> MJ
And the protein should be <protein> kg
Examples:
| weight | energy | protein |
| 450 | 26500 | 215 |
| 500 | 29500 | 245 |
| 575 | 31500 | 255 |
| 600 | 37000 | 305 |
【讨论】:
是的,这就是我的功能文件在构建项目时的样子,如果您愿意,每个示例行都会创建一个测试或场景。但是,当我执行这些场景中的“一个”时,测试似乎会在完成后运行其他场景。以上是关于Specflow 场景大纲未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章