如何一个接一个地运行 Specflow 测试而不是并行
Posted
技术标签:
【中文标题】如何一个接一个地运行 Specflow 测试而不是并行【英文标题】:How to run Specflow tests one after another NOT parallel 【发布时间】:2018-06-20 02:13:43 【问题描述】:我正在从 Visual Studio 运行 C# specflow 测试。当我运行时,我看到测试正在并行执行。我怎样才能让他们一个接一个地运行?我附上了以青色突出显示的快照。我正在寻找一种方法来一个接一个地运行它们。我正在使用 Specflow.AssistDynamic 和 Techtalk.Specflow
【问题讨论】:
@mjwills - 我认为任何具有 >= 2 测试的 specflow 测试都可以。我们不需要发布大量的入门模板代码。 我相信答案取决于他们是使用NUnit
还是其他选项 - github.com/techtalk/SpecFlow/wiki/Parallel-Execution 。在我看来,minimal reproducible example 可能是 OP 提供有价值的上下文来回答他们的问题的最快方式。但我可能错了。
【参考方案1】:
我可以通过向 AssemblyInfo.cs 添加一个属性来做到这一点
[程序集:CollectionBehavior(DisableTestParallelization = true)]
【讨论】:
请注意 - 这可以添加到项目中的任何 .cs 文件中。对于新的自动生成的程序集信息机制尤其重要【参考方案2】:SpecFlow 生成单元测试代码。所以您需要检查您在该项目中使用的 xUnit 框架。 见此链接:https://github.com/techtalk/SpecFlow/wiki/Parallel-Execution
【讨论】:
【参考方案3】:如果您使用的是 NUnit,请从 Assembly.cs
中删除/评论此行:
[assembly: Parallelizable(ParallelScope.Fixtures)]
另外,我记得,在 Visual Studio 中,在测试资源管理器中,显示按钮 - 并行运行测试。取消点击它。 在我的项目中,为此,我删除了这一行,并且还调用了测试场景,例如:A_A,A_B,在字母表中。在这种情况下,他们将一个接一个地进行。
【讨论】:
以上是关于如何一个接一个地运行 Specflow 测试而不是并行的主要内容,如果未能解决你的问题,请参考以下文章
SpecFlow 测试无法使用 Playwright.NET 运行