Skip to content

Latest commit

 

History

History
16 lines (14 loc) · 2.41 KB

re-run_failed_tests.md

File metadata and controls

16 lines (14 loc) · 2.41 KB

pytest如何重跑失败用例

失败重跑这件事是有门道的, 如果仅仅是简单的重跑失败用例, 那么--last-failed参数就已经足够了.
但如果想要知道pytest提供了哪些情况下可以支持什么样的重跑能力, 就可以参考下面这个表格.

参数 描述 测试案例
pytest --last-failed 仅重跑失败用例, 不跑那些已经成功的用例. 测试案例
pytest --failed-first 先跑失败用例, 再跑剩下的其他用例. 测试案例
pytest --failed-first --last-failed-no-failures all 当上一次执行没有失败用例时, 执行所有用例.
(--failed-first是固定搭配)
测试案例
pytest --failed-first --last-failed-no-failures none 当上一次执行没有失败用例时, 不执行任何用例.
(--failed-first是固定搭配)
测试案例
pytest --new-first 最后修改时间(最新的在最前面)排序来执行用例. 测试案例
pytest -x 当出现失败用例时, 不再执行后续用例, 退出pytest. 测试案例
pytest --last-failed -x (组合参数)
全量用例执行完毕后, 仅重跑失败用例,
当出现失败用例时, 不再执行后续用例, 退出pytest.
当用例执行成功后, 该用例从last-failed集合中移除.
当用例执行失败后, 失败的和未执行的失败用例继续保留.
测试案例
pytest --stepwise 执行全量用例时, 遇到失败用例会立即停止pytest程序.
此时stepwise维护了自己的缓存机制cache/stepwise,
用于标记失败用例.
重跑stepwise时, 仅重跑失败用例和后续的未执行用例.
测试案例
pytest --stepwise-skip 执行所有用例,
当遇到第一个失败用例时对它进行忽略,
当遇到第二个失败用例时立即停止pytest程序.
记录当前失败位置是第二个失败用例的位置.

再次执行, 从第二个失败用例位置开始执行.
当再次出现第一个失败用例失败时, 忽略.
当再次出现第二个失败用例失败时, 立即停止pytest程序.
即: 永远忽略第一个失败用例.
测试案例