首页 > 解决方案 > NUnit 并行运行测试类别

问题描述

我有不同类的测试(页面对象模式),当并行运行时可能会相互干扰(它们不是*单元测试)。例如,有类:AddCustomerFormTestsEditCustomerFormTests,分别测试添加客户和更改客户信息。最合乎逻辑(和可读性)的解决方案似乎是将固定装置分配给不同的类别,并避免同时运行同一类别的测试,但是我找不到办法。

基本上,我正在寻找[Parallelizable(ParallelScope.Fixtures)]与类别而不是类一起使用的等效项。我不想将类合并在一起,因为这会破坏页面对象模式以及 SRP。

标签: c#automated-testsnunitpageobjectsparallel-testing

解决方案


有趣的问题!恐怕我认为这目前是不可能的——不修改 NUnit 框架。(虽然不要相信我的话,但其他人可能会想到一些东西!)

如果您要考虑对 NUnit 框架进行更改,我会考虑实施一项新IWorkItemDispatcher基于类别的并行化工作。然后,您可以在初始化 TestExecutionContext 时选择正确的调度程序。(例如https://github.com/nunit/nunit/blob/ad943eb94fe280e661fc6c690043fe8eb0a11e40/src/NUnitFramework/framework/Api/NUnitTestAssemblyRunner.cs#L352-L358

解决该问题的另一种方法-您是否考虑过使用部分类对测试进行分组,然后并行化固定装置?我认为这会起作用......你可能想先测试一下!


推荐阅读