如何一个接一个地运行 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:为许多场景大纲维护一个示例表

在 TFS 构建中运行 Specflow 测试

SpecFlow - 是不是可以在功能文件中重用测试数据?

SpecFlow 测试无法使用 Playwright.NET 运行

仅安装Specflow.MSTest软件包时,Specflow 3.0会错误地生成NUnit测试

Appium:如何一个接一个地执行多个测试用例?