Pytest命令行参数及选项详解
Pytest是一个功能强大且易于使用的Python测试框架。除了支持常规的测试方式外,Pytest还提供了丰富的命令行参数和选项,用于控制测试的行为。
以下是Pytest常用的命令行参数及选项的详细解释和使用示例:
1. --collect-only:仅收集测试用例而不执行它们。
$ pytest --collect-only
2. --verbose:显示详细的测试信息,包括每个测试用例的名称。
$ pytest --verbose
3. -k EXPRESSION:只运行测试名称与正则表达式匹配的测试用例。
$ pytest -k "test_login"
4. -m MARKEXPR:只运行具有特定标记的测试用例。
$ pytest -m "slow"
5. -x:遇到 个测试用例失败后立即停止测试。
$ pytest -x
6. --maxfail=num:在遇到指定数量的失败后立即停止测试。
$ pytest --maxfail=3
7. -s:允许在测试过程中打印输出。
$ pytest -s
8. --tb=style:设置traceback的显示样式,可选值有short、line、no。
$ pytest --tb=line
9. --durations=num:显示最慢的N个测试用例的耗时(单位:秒)。
$ pytest --durations=3
10. --cov=PACKAGE:计算代码覆盖率,并输出报告。
$ pytest --cov=my_package
11. --cov-report=TYPE:指定代码覆盖率报告的类型,常见的有term、html、xml。
$ pytest --cov-report=html
12. --pdb:在测试失败时自动进入调试器。
$ pytest --pdb
13. --capture=method:控制标准输出和标准错误的捕获方式,可选值有no、sys、fd、tee-sys、tee-std。
$ pytest --capture=tee-sys
14. --ignore=PATH:忽略指定路径下的测试文件或目录。
$ pytest --ignore=tests/legacy/
15. --ignore-glob=GLOB:忽略与指定的glob模式匹配的文件。
$ pytest --ignore-glob="*_legacy.py"
16. --doctest-modules:运行模块中的doctest测试。
$ pytest --doctest-modules
17. --junitxml=path:生成JUnitXML格式的测试报告。
$ pytest --junitxml=result.xml
以上是常用的Pytest命令行参数及选项的详细解释和使用示例。通过灵活配置这些参数和选项,可以更好地控制和管理测试用例的执行过程,并生成详细的测试报告。
