我正在使用 pytest 。我喜欢我称之为pytest的方式(首先重试失败的测试,详细检查,抓取并显示串行输出,首先停止失败):
pytest --failed-first -v -s -x
然而,还有一件事我想要:
我希望pytest 运行新测试(即测试之前从未测试过) - failed-first 之后。这样,在处理长时间执行的测试时,我会尽快获得最相关的信息。
有什么办法吗?
答案 0 :(得分:3)
这可能不是您直接询问的内容,但我的理解是,在开发期间创建新测试时,测试执行顺序对您很重要。
由于您已经在使用这些“新”测试,pytest-ordering
插件可能是一个很好的选择。它允许您通过使用@pytest.mark.first
,@pytest.mark.second
等装饰器修改测试来影响执行顺序。
pytest-ordering
可以使用pytest_collection_modifyitems
hook更改执行顺序。还有pytest-random-order
插件,uses the same hook也可以控制/更改订单。
您也可以定义自己的钩子并根据您的特定需求进行调整。例如,这里使用另一个钩子来改组测试:
答案 1 :(得分:0)
对于现在开始使用此方法的任何人,pytest added a --new-first
option在运行所有其他测试之前先运行新测试。可以将其与--failed-first
结合使用以运行新的和失败的测试。对于测试驱动的开发,我发现将这些选项与pytest-watch结合使用会很有帮助,正如我在blog中所述。