前言
pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例。
1、跑自动化时经常会出现这样一个情况,一轮自动化跑完后零星出现了几个失败测试用例,无法断定失败的原因,所以可能需要重新跑一下失败的测试用例去调试,那我们要做的是就去修改脚本把那几个失败的测试用例筛选出来然后重新跑一遍;
2、但是在pytest测试框架因为有缓存功能,就不需要手动去查找上次失败的测试用例并筛选执行。
3、pytest测试框架中执行完所有的测试用例后会在当前目录下生成 .pytest_cache ,里面就保存了上一次用例执行的信息。
pytest测试框架中跟缓存有关的命令行参数
1、 --last-failed : 如重新运行上次运行结果为失败的测试用例, 如果没有执行失败的用例则执行所有的测试用例。【 --lf 】
场景:因为某次改动导致了多个测试用例失败了,那么我可以先执行一次全量测试找出所有失败的用例,待问题修复后,再次执行时带上这个选项就可以快速的进行验证:只执行失败用例验证失败用例是否已修复。 这个的实现原理是:pytest会在每次执行时将该次执行失败的所有用例存到测试文件同级目录下的名为.pytest_cache/v/cache/lastfailed的隐藏文件里,这样就清楚的标明了上次执行失败的用例。
2、 --failed-first :运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的 fixture setup/teardown )【 --ff 】
3、 --new-first :根据文