前言
"80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多"平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了,当开发修复完bug后,我们一般是重点测上次失败的用例。那么自动化测试也一样,当用例特别多时,为了节省时间,第一次部分用例失败了,修复完之后,可以只测上次失败的用例。
pytest -h
命令行输入pytest -h,找到里面两个命令行参数: --lf 和 --ff
- --lf --last-failed 只重新运行上次运行失败的用例(或如果没有失败的话,会全跑)
- --ff --failed-first 运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的 fixture setup/teardown)
--lf 和 --ff
lf是 last-failed的缩写,我第一次运行全部测试用例有1个通过passed,1个失败failed,1个error
# coding:utf-8 import pytest @pytest.fixture() def xixi(): a="zs" assert a=='z' return a def test_1(): print("我是test_1") assert 2 def test_2(xixi): print("我是test_2") assert xixi=="zs" def test_3(): print("我是test_3") assert "x"=="ww" if __name__=="__main__": pytest.main("test_m.py")
如果只想运行其中1个failed和1个error用例,那么可以直接在cms输入指令
pytest -s --lf test_m.py
备注:若是test_m.py目录下,只有这一个脚本,可直接输入pytest --lf
如果想先运行上次失败的,后运行其它通过的用例
pytest -s --ff test_m.py