如何在 NUnit 3 中将整个程序集标记为不可并行化?

How to mark a whole assembly as non parallelizable in NUnit 3?

我们有一个完整的程序集,我们想在 NUnit 中将其标记为不可并行化。

我发现有一个 [NonParallelizable] 可以根据 the documentation 设置为汇编级别。但是我应该把它放在哪里呢?

有人举个例子吗?

要将属性应用于程序集,您应该指定其目标 (MSDN link) - 通过使用 assembly: - 因此您应该:

[assembly: NonParallelizable]

此属性可以放在程序集中的任何文件中,只要它不在命名空间内即可,但通常 AssemblyInfo.cs 文件用于程序集属性。

无论出于何种原因,您链接到的 NUnit 文档未提供任何示例属性用法,但 source for NonParallelizableAttribute.cs 显示有一个无参数构造函数(我在上面使用过)。

如果程序集中没有 [Parallelizable] 属性,则程序集不可并行化。在这种情况下,在程序集级别添加 [NonParallelizable] 属性仅用作文档。

[NonParallelizable] 在程序集级别 不会 覆盖您在程序集中可能具有的任何较低级别 [Parallelizable] 属性。相反,较低级别的属性会覆盖较高级别的属性。