[英]pytest - run each test in a separate process
我正在使用pytest运行大量的python测试,一些测试结果取决于测试的运行顺序。 例如,如果测试B在测试A之后运行,则由于在测试A中完成的一些初始化会影响测试B而失败,因此它可能会失败。为了避免此问题,我想在一个新进程中运行每个测试,但是测试仍应按顺序运行,并且不平行。 有没有办法用pytest做到这一点?
@pytest.mark.order2
def test_foo():
assert True
@pytest.mark.order1
def test_bar():
assert True
我建议您实现setup_method()和teardown_method(),以清理您在测试中所做的初始化。 这样,您就可以摆脱测试执行顺序所具有的依赖性。
另一种选择是使用固定装置。
但是,如果您不想并行运行测试,那么我看不到在新流程中启动每个测试的好处。 尽管仍然需要,但是您可以在setup_method()中启动一个新进程,并将当前测试附加到该进程。 然后,您的teardown_method()可以终止该过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.