2

我创建了 10 个 Specflow 功能文件,每个文件有 5 个场景。因此,总共有 50 个场景或测试。当我使用 SpecRun 并行运行这些测试(3 个线程)时,每个功能文件中的 3 个场景会同时执行,这很好。

我之前使用过 Nunit Runner。如果我们运行三个线程并在 app.config 中指定以下代码,则运行器会从三个不同的功能文件中选择一个场景。

[assembly: Parallelizable(ParallelScope.Fixtures)]

但是 SpecRun 从同一个功能文件中选择了三个场景。我的要求是复制 Specrun 的 NUnit 运行器行为。因此,一次并行执行 3 个特征文件。有没有办法做到这一点?

我尝试了以下链接:

使用 specflow/specrun 时如何并行运行功能文件?

如何并行运行 specflow 功能文件?

SpecFlow 并行和非并行测试

4

1 回答 1

0

首先,您必须实现上下文注入或任何依赖注入,因为带有 specflow 上下文的 specrun 不支持并行执行。

此外,[assembly: Parallelizable (ParallelScope.Fixtures)]是为 Nunit 而不是为 Specrun 定义的。如果你实现了 specflow 上下文注入,那么你可以通过增加线程数来得到你想要的。Specflow 上下文注入将根据您的线程数并行执行每个功能。

我希望这能让你清楚。

于 2020-04-15T18:36:00.473 回答