在同一或多个测试代理中执行SpecFlow并行执行

时间:2019-01-30 18:47:27

标签: c# selenium-webdriver mstest specflow

如何使用MS测试在同一测试代理上并行执行specflow测试用例

1 个答案:

答案 0 :(得分:0)

您有两个选择:

装配体属性

如果您只有一个测试程序集并且代码是可修改的,则此选项适用。
如果您可以在程序集中的任意位置(例如,properties.cs文件或任何测试类文件)添加以下程序集属性,则应该能够使Specflow测试并行运行。

[assembly: Parallelize(Workers = 0, Scope = ExecutionScope.MethodLevel)]

.runsettings文件设置

如果您要进行多个测试程序集化,可以在解决方案的根目录下创建一个名为.runsettings的文件:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <MSTest>
    <Parallelize>
      <Workers>8</Workers>
      <Scope>MethodLevel</Scope>
    </Parallelize>
  </MSTest>
</RunSettings>
  

并行化有3个范围:

     

(1) ClassLevel –每个线程都执行一个TestClass测试。   在TestClass中,测试方法按顺序执行。这是   默认值–一个类中的测试可能具有相互依赖性,我们   不想太激进。

     

(2) MethodLevel –每个线程都执行一个TestMethod。

     

(3)自定义 –用户可以提供实现   所需的执行语义。目前尚不支持,但是   提到的原因是-与所有MSTest V2一样-我们设计了   功能具有可扩展性。

有关更多详细信息,请参见this blog