【发布时间】:2019-06-24 03:25:39
【问题描述】:
如何使用 MS 测试在同一个测试代理上并行执行 specflow 测试用例
【问题讨论】:
标签: c# selenium-webdriver mstest specflow
如何使用 MS 测试在同一个测试代理上并行执行 specflow 测试用例
【问题讨论】:
标签: c# selenium-webdriver mstest specflow
你有两个选择:
程序集属性
如果您只有一个测试程序集并且代码是可修改的,则此选项适用。
如果您可以在程序集的任何位置添加以下程序集属性(例如 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) Custom – 用户可以提供一个插件来实现 所需的执行语义。目前尚不支持,但 之所以提到,是因为 - 像所有 MSTest V2 一样 - 我们设计了 考虑到可扩展性的功能。
更多详情请参考this blog
【讨论】: