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)] 以实现最佳并行化。

何时禁止显示警告

不禁止显示此规则发出的警告。 启用并行化时,许多库都可以从显著的性能提升中受益。 当以防止并行化的方式设计测试应用程序时,显式设置属性可帮助新开发人员了解库的限制。