MSTEST0001:显式启用或禁用测试并行化

属性
规则 ID MSTEST0001
标题 显式启用或禁用测试并行化
类别 性能
修复是中断修复还是非中断修复 非中断
默认为启用
默认严重性 警告:从 4.0.0 开始,信息在之前
引入版本 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)] 以实现最佳并行化。

何时禁止显示警告

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

抑制警告

由于此规则是在编译级别报告的,而不是在 .cs.vb 源文件中报告,因此无法禁止违反此规则内联或通过 .editorconfig 文件。

<NoWarn>$(NoWarn);MSTEST0001</NoWarn> 添加到项目文件或 Directory.Build.props 文件,以禁用项目的规则。

若要控制此规则的严重性,只能通过.globalconfig文件进行操作。 有关详细信息,请参阅 配置文件

is_global = true

dotnet_diagnostic.MSTEST0001.severity = none

有关详细信息,请参阅如何禁止显示代码分析警告