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

3
我们有一个完整的程序集,我们希望在NUnit中将其标记为不可并行化。
我发现有一个`[NonParallelizable]`属性,根据文档可以设置在程序集级别。但是我应该把它放在哪里呢?
有人有例子吗?
2个回答

5

要将属性应用到程序集,您应该指定其目标(MSDN 链接)。使用 assembly: 来实现,因此您应该有:

[assembly: NonParallelizable]

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

不知为何,你链接到的 NUnit 文档没有提供任何属性用法示例,不过 NonParallelizableAttribute.cs 的源代码 显示有一个无参数的构造函数(我在上面使用了它)。


0

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

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


1
你确定吗?因为我已经三次检查了,在这个程序集中没有任何关于Parallelizable的引用(但在其他两个程序集中有),但是我一直收到错误,说ScenarioContext.Current被这个程序集中的测试在多线程环境中使用。 - J4N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接