我创建了10个SpecFlow功能文件,每个文件都有5个方案。因此,总共50个场景或测试。当我使用并行的Specrun运行这些测试(3个线程)时,每个功能文件中的3个方案都会一次执行,这很好。
我以前在使用Nunit Runner。如果我们运行三个线程并在app.config中指定以下代码,则跑步者将从三个不同的功能文件中选择一个方案。
[assembly: Parallelizable(ParallelScope.Fixtures)]
,但Specrun从同一功能文件中选择三个方案。我的要求是为Specrun复制Nunit Runner行为。因此,执行3个功能文件一次并行。有办法这样做吗?
我尝试了以下链接:
使用SpecFlow/Specrun时如何并行运行功能文件?
如何并行运行SpecFlow功能文件?
SpecFlow并行和非并行测试
首先,您必须实现上下文注入或任何依赖项注入,因为具有SpecFlow上下文的Specrun不支持并行执行。
另外,[assembly: Parallelizable (ParallelScope.Fixtures)]
是为Nunit定义的,而不是为Specrun定义。如果您实现了SpecFlow上下文注入,则可以通过增加线程计数来获得所需的东西。SpecFlow上下文注射将根据您的线程计数并行执行每个功能。
我希望这能给您清晰。