MSTEST0001:显式启用或禁用测试并行化
属性 | 值 |
---|---|
规则 ID | MSTEST0001 |
标题 | 显式启用或禁用测试并行化 |
类别 | 性能 |
修复是中断修复还是非中断修复 | 非中断 |
默认为启用 | 是 |
默认严重性 | 信息 |
引入版本 | 3.2.0 |
存在代码修补程序 | 否 |
原因
该程序集未用 [assembly: Parallelize]
或 [assembly: DoNotParallelize]
属性标记。
规则说明
MSTest 默认按顺序运行同一程序集内的测试,这可能会严重限制性能。 建议启用程序集属性 [assembly: Parallelize]
来并行运行测试,或者如果已知程序集不可并行,则显式使用程序集级别属性 [assembly: DoNotParallelize]
。
[assembly: Parallelize]
的默认配置等效于 [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)]
,这意味着将在类级别(而不是方法级别)设置并行化,并将使用尽可能多的线程(具体取决于内部实现)。
如何解决冲突
若要解决此规则的冲突,请添加 [assembly: Parallelize]
或 [assembly: DoNotParallelize]
属性。 建议使用 [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
以实现最佳并行化。
何时禁止显示警告
不禁止显示此规则发出的警告。 启用并行化时,许多库都可以从显著的性能提升中受益。 当以防止并行化的方式设计测试应用程序时,显式设置属性可帮助新开发人员了解库的限制。