该插件提供了两个命令行选项,用于重新运行上次pytest调用的失败:
--lf,--last-failed- 只重新运行上次失败的用例,如果没有失败则全部运行
--ff,--failed-first- 先运行故障然后再运行其余的测试。
对于清理(通常不需要),--cache-clear选项允许在测试运行之前删除所有跨会话缓存内容。
首先只运行失败用例:
创建一个demo,执行50个用例,其中2个失败,48个成功。代码如下:
import pytest
@pytest.mark.parametrize("i",range(50))
def test_num(i):
assert i not in (17,25)
运行结果:
========================= 2 failed, 48 passed in 0.24s =========================
如果运行失败用例,则在命令窗口执行
pytest --lf test_cache_1.py
运行结果Results (0.11s):
2 failed
- test_cache_1.py:10 test_num[17]
- test_cache_1.py:10 test_num[25]
48 deselected
从上述结果中可以明显看到程序只运行了失败的用例,其他正常用例明显取消操作
首先运行失败用例,在运行其他测试用例
以上述代码为例子,在命令窗口执行:
pytest --ff test_cache_1.py
运行结果: test_cache_1.py ⨯✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓
Results (0.21s):
48 passed
2 failed
- test_cache_1.py:10 test_num[17]
- test_cache_1.py:10 test_num[25]
从上述结果中可以看出先执行了失败的用例,在运行了其他的用例