我要运行大约100个硒测试,但其中2个不能并行运行
是否可以仅使用xUnit为这两个测试禁用并行性?
(那2个测试不能并行,因为他们需要模拟键盘点击 - >所以我会失去使用并行执行的输入焦点)
我正在寻找的最佳方案:
为2个测试添加一些属性,这将禁用它们的并行性。然后在测试执行中,98个测试将运行16个线程,剩下的两个测试将在最后使用1个线程执行。
我知道其中一个解决方案可能是这样的:
但是不符合我的需求,我想知道我是否可以在我所描述的场景中运行测试"最佳场景"
P.S。如果没有解决方法,我可以在nunit中找到类似的东西吗?
答案 0 :(得分:2)
虽然 Diver 的答案是正确的,但它并没有说明如何实现这一点。
[CollectionDefinition(nameof(SystemTestCollectionDefinition), DisableParallelization = true)]
public class SystemTestCollectionDefinition { }
[Collection(nameof(SystemTestCollectionDefinition))]
public class BaseSystemTest { ... }
现在集合中的所有测试都将按顺序执行。
答案 1 :(得分:1)
如果您有xunit> = 2.3,请尝试[CollectionDefinition(DisableParallelization = true)]。
能够通过测试集合定义禁用单个测试集合的交叉集合并行化。支持并行的测试集合将首先(并行)运行,然后是并行禁用的测试集合(按顺序运行)。