命令行参数 | 描述 | 常见使用案例 |
---|---|---|
-v / --verbose |
显示每个测试用例的详细信息,包括测试名称和状态 | pytest -v |
-s / --capture=no |
禁用输出捕获,允许 print() 输出显示 |
pytest -s |
-q / --quiet |
安静模式,减少输出,仅显示每个测试的通过/失败结果 | pytest -q |
-k <expression> |
根据指定的表达式运行匹配的测试,支持匹配测试函数名称或类名 | pytest -k "test_add" |
-m <markexpr> |
运行具有指定标记的测试,用于过滤测试,如 smoke 标记的测试 |
pytest -m smoke |
--maxfail=<num> |
设置最大失败次数,超过次数则停止执行测试 | pytest --maxfail=3 |
--disable-warnings |
禁用警告信息输出 | pytest --disable-warnings |
--tb=<style> |
控制错误回溯的输出格式,选项包括 short 、long 、no 、line |
pytest --tb=short |
--capture=<mode> |
控制标准输出捕获方式,no 禁用,fd 捕获标准输出和错误,sys 捕获标准输出等 |
pytest --capture=no |
-p |
加载插件。用于在命令行中加载指定插件,如 -p no:warnings 禁用警告插件 |
pytest -p no:warnings |
--runxfail |
标记预期会失败的测试。如果测试失败不会被计入总失败次数,如果通过则为错误 | pytest --runxfail |
--junitxml=<file> |
生成 JUnit XML 格式的测试报告,用于 CI/CD 集成 | pytest --junitxml=report.xml |
--html=<file> |
生成 HTML 格式的测试报告(需要安装 pytest-html 插件) |
pytest --html=report.html |
--cov=<module> |
生成代码覆盖率报告(需要安装 pytest-cov 插件) |
pytest --cov=my_module |
--ignore=<path> |
忽略指定的测试文件或目录。可以用于跳过不需要执行的测试 | pytest --ignore=tests/test_ignored.py |
--setup-show |
显示每个测试的 setup 和 teardown 步骤 | pytest --setup-show |
--trace |
追踪每个测试的执行顺序(适用于有复杂依赖关系的测试) | pytest --trace |
--fixtures |
列出当前项目中所有的 fixtures | pytest --fixtures |
-h |
显示 pytest 的帮助信息,列出所有可用的命令行参数 |
pytest -h |
常见使用案例说明
-
显示详细信息:
-v
/--verbose
-
用途:在执行测试时显示详细的测试结果,包括每个测试的名称、结果(通过或失败)。
-
使用示例:
pytest -v
-
输出示例:
test_add.py::test_addition PASSED test_add.py::test_subtraction FAILED
-
-
禁用输出捕获:
-s
/--capture=no
-
用途:禁用 pytest 的输出捕获功能,确保
print()
输出会显示在控制台中。 -
使用示例:
pytest -s
-
输出示例:
Test started <stdout>: Some debug information
-
-
按测试名称过滤:
-k
-
用途:只运行名称匹配指定表达式的测试函数,可以基于函数名进行灵活的过滤。
-
使用示例:
pytest -k "add"
-
说明: 运行名称中包含
add
的所有测试,如test_add
或test_addition
。
-
-
运行特定标记的测试:
-m
-
用途:运行所有带有特定标记的测试,如
smoke
、regression
等。 -
使用示例:
pytest -m "smoke"
-
说明: 只运行带有
@pytest.mark.smoke
标记的测试。
-
-
最大失败次数:
--maxfail
-
用途:限制测试失败的最大次数,如果失败次数超过指定值,则停止测试执行。
-
使用示例:
pytest --maxfail=2
-
说明: 运行最多两个失败的测试,超过两次失败则停止执行。
-
-
禁用警告信息:
--disable-warnings
-
用途:禁用所有测试中的警告信息,保持输出简洁。
-
使用示例:
pytest --disable-warnings
-
输出示例:
Test passed
-
-
生成 HTML 报告:
--html
-
用途:生成 HTML 格式的测试报告,便于查看和分享测试结果。
-
使用示例:
pytest --html=report.html
-
说明: 生成一个
report.html
的测试报告。
-
-
跳过特定测试:
--ignore
-
用途:跳过指定的测试文件或目录,常用于忽略不需要执行的测试。
-
使用示例:
pytest --ignore=tests/test_ignored.py
-
-
生成 JUnit XML 报告:
--junitxml
-
用途:生成 JUnit XML 格式的报告,通常用于 CI/CD 集成。
-
使用示例:
pytest --junitxml=result.xml
-
-
指定测试覆盖率:
--cov
-
用途:生成代码覆盖率报告,用于分析测试覆盖了代码的哪些部分。
-
使用示例:
pytest --cov=my_module
-
通过结合这些命令行参数,pytest
可以在实际测试过程中提供更多灵活的控制和更详细的输出报告。