c# - NUnit 并行运行测试类别
问题描述
我有不同类的测试(页面对象模式),当并行运行时可能会相互干扰(它们不是*单元测试)。例如,有类:AddCustomerFormTests
和EditCustomerFormTests
,分别测试添加客户和更改客户信息。最合乎逻辑(和可读性)的解决方案似乎是将固定装置分配给不同的类别,并避免同时运行同一类别的测试,但是我找不到办法。
基本上,我正在寻找[Parallelizable(ParallelScope.Fixtures)]
与类别而不是类一起使用的等效项。我不想将类合并在一起,因为这会破坏页面对象模式以及 SRP。
解决方案
有趣的问题!恐怕我认为这目前是不可能的——不修改 NUnit 框架。(虽然不要相信我的话,但其他人可能会想到一些东西!)
如果您要考虑对 NUnit 框架进行更改,我会考虑实施一项新的IWorkItemDispatcher
基于类别的并行化工作。然后,您可以在初始化 TestExecutionContext 时选择正确的调度程序。(例如https://github.com/nunit/nunit/blob/ad943eb94fe280e661fc6c690043fe8eb0a11e40/src/NUnitFramework/framework/Api/NUnitTestAssemblyRunner.cs#L352-L358)
解决该问题的另一种方法-您是否考虑过使用部分类对测试进行分组,然后并行化固定装置?我认为这会起作用......你可能想先测试一下!
推荐阅读
- java - 文本文件包含字符串和数字。如何找到与字符串关联的最大数字?
- java - 从字符串变量中计算 indexOf 个字符
- java - java - 如何使用Java中的注释相关参数检查自定义运行时异常属性
- python - PySpark 的无法解释的行为和删除空值
- swift3 - UIAlert 在呈现后立即被解雇。迅速
- sql - 触发器计数行给出 ORA-04091:表正在变异,触发器/函数可能看不到它
- javascript - 设置 Javascript 文件不是 Rails 服务器的服务器
- android - 无法让服务在 Android 中运行
- python - 了解python函数;返回值
- ios - 确定尽可能低的 iOS / macOS 部署目标的最佳方法