我有不同类的测试(页面对象模式),当并行运行时,它们可能会相互干扰(它们不是*单元测试)。例如,有AddCustomerFormTests
和EditCustomerFormTests
类,分别测试添加客户和更改客户信息。最合乎逻辑(且可读性最高)的解决方案似乎是将固定装置分配给不同的类别,并避免同时运行来自同一类别的测试,但是我找不到解决方法。
基本上,我正在寻找与类别(而不是类别)相对应的[Parallelizable(ParallelScope.Fixtures)]
。我不想将类合并在一起,因为这会破坏Page Object模式以及SRP。
答案 0 :(得分:0)
有趣的问题!恐怕我不认为当前不可能-不对NUnit框架进行修改。 (尽管我不相信我的话,但其他人可能会想到一些东西!)
如果要考虑对NUnit框架进行更改,我将考虑实现一个新的aria-describedby
以根据类别并行化工作。然后,您可以在初始化TestExecutionContext时选择正确的调度程序。 (例如https://github.com/nunit/nunit/blob/ad943eb94fe280e661fc6c690043fe8eb0a11e40/src/NUnitFramework/framework/Api/NUnitTestAssemblyRunner.cs#L352-L358)
解决问题的另一种方法-您是否考虑过使用部分类对测试进行分组,然后并行处理夹具?我认为那行得通...您可能要先进行测试!