软件测试中,pytest 框架如何运行上传失败的测试用例?
回答重点
在软件测试中,pytest 是一个非常流行的框架,它提供许多强大且灵活的功能,以确保我们的测试工作顺利进行。要运行上传失败的测试用例,我们可以使用 pytest 的 --last-failed
选项。
具体步骤如下:
1)确保 pytest 被配置为记录测试结果。可以通过 pytest 的 --result-log
选项记录测试结果到一个文件。
2)运行测试并记录下所有的结果。这一步会生成一个结果文件,可以是 result.log
之类的文件。
3)要重新运行上一次失败的测试用例,只需使用 --last-failed
选项。
例如:
pytest --result-log=result.log
pytest --last-failed
扩展知识
1) 结果记录 : 这一步是关键,它确保你有一个地方能够保存所有的测试结果。 --result-log
用于生成结果文件,但需要注意这个选项在 pytest 高版本中已废弃,建议使用插件来代替,如 pytest-cache
或 pytest-failures
。你可以在 pytest.ini
文件中配置这些插件:
[pytest]
addopts = --last-failed
2) 运行初始测试 : 一次性运行所有测试,用于记录最初的结果。你可以通过不同的选项来优化这一步,例如:
pytest tests/ --maxfail=5 --tb=short
--maxfail=5
让 pytest 遇到 5 个失败的测试用例后就停止运行, --tb=short
会显示简短的错误追踪信息。
3) 重新运行失败的测试用例: 用 --last-failed
选项可以很容易地重新运行上次所有失败的测试用例。这个步骤特别适合在你修复了部分代码后验证特定改动是否修复了问题:
pytest --last-failed
除了 --last-failed
,pytest 还提供了一些其他有用的选项:
1) --maxfail
:你可以设定最大失败数量,超出这个数目 pytest 就会停止运行。例如:
pytest --maxfail=3
2) -k
:只运行名称匹配指定表达式的测试用例,支持简单的逻辑操作。如果你知道部分可能会失败的测试用例,你可以手动运行那些测试用例:
pytest -k "test_upload"
最后,配合使用 pytest 的相关插件,比如 pytest-xdist
可以并行运行测试,加快测试速度; pytest-rerunfailures
则可以设置自动重跑失败的用例。