0

我试图弄清楚当我使用 --dist=loadfile 或 loadscope 功能时,是否有一种方法可以控制/理解测试在不同工作人员之间的分布方式。

我的项目结构是

tests
     tests_a.py
     .
     .
     .
     .
     .
     tests_h.py

每个测试模块都定义了随机数量的测试。假设我在 tests_b.py 中有一个特定的测试,我想在测试套件结束时运行它并使用@pytest.mark.last.

我还实现了该特定测试中的机制,如果它由工作人员运行并且有其他工作人员在运行其他测试,它将等到它们全部完成。(通过使用 --dashboard 函数更新未测试的测试数量)

我面临的问题是有时测试被随机分配给不同的工作人员,所有其他工作人员都按预期完成了测试,但是在 tests_b.py 上工作的工作人员具有 tearDown()(我希望在最后发生的功能) 运行测试,即使它需要完成其他模块(假设 test_f.py 已分配给同一工作人员)。所有其他工作人员完成运行并关闭。但是这个工作人员运行了 tearDown() ,它等待所有其他测试完成并陷入循环,因为其他未经测试的测试被分配给同一个工作人员并且它们永远不会被执行。有没有办法让这个特定的测试在分配给工作人员的所有测试结束时运行?

谢谢

4

0 回答 0