我有一个包含大约 6 个类的测试套件,它们之间总共有 120 个测试。
我面临的问题是,当其他一些测试正在运行时,一些测试无法运行。例如,对于测试 a、b、c、d、e、f:
- a 不能与 b 或 c 一起运行
- b 不能与 a 或 c 一起运行
- c 不能与 a 或 b 一起运行
- d 不能与 f 一起运行
- e 可以运行任何东西
- f 不能与 d 一起运行
这是一个小例子,但希望它能说明这一点。我仍然想尽可能多地利用并行性,例如 ad 和 e 可以同时运行。我仍在使用 testNG 学习,但我尝试了以下方法:
将不能一起运行的测试分组到一个组中- 我找不到在“parallel =“groups”模式下运行 testNG 的方法,例如在一个组中运行所有测试的“parallel =“classes””在同一个线程中。将每个不能一起运行的测试放在一个类中将允许 'parallel="classes"' 工作,但这意味着测试不会像目前那样由测试功能安排。
将依赖关系放在测试周围- 我考虑让每个测试相互依赖(可能与组?),形成一个链,例如 a->b->c。这样做的问题是这些将始终按该顺序运行,这可能会隐藏问题。这里的另一个问题是测试维护成为一个问题,因为您必须确保链是单一的并且不会中断!
创建一个按组对列表进行排序的方法拦截器- 我对此并不完全确定,但我认为它不会阻止测试已经运行,而另一个不兼容的测试被选为“下一个运行”。
我见过TestNG & Selenium: 将测试分成“组”,在每个组内按顺序运行,似乎在尝试相同的目标,但出于不同的原因,因此达到的解决方案不合适,因为它不是依赖问题,但是一个隔离问题。
有什么可以帮助我的吗?
非常感谢,
菲尔