Administrator
Published on 2025-03-20 / 18 Visits
7
0

pytest 常用参数

以下是 pytest 运行时的一些常用参数,按功能分类整理:


1. 运行控制

  • -v / --verbose:详细输出,显示每个测试用例的名称和结果。
  • -q / --quiet:静默模式,仅输出简略信息。
  • -x / --exitfirst:遇到第一个失败或错误时立即停止测试。
  • --maxfail=NUM:允许最多失败 NUM 次后停止测试。
  • --lf / --last-failed:仅重新运行上次失败的用例。
  • --ff / --failed-first:先运行上次失败的用例,再运行其他用例。

2. 测试选择

  • -k EXPRESSION:通过名称匹配选择测试用例(支持表达式,如 -k "test_login or test_logout")。
  • -m MARKER:运行标记(Mark)为 MARKER 的测试用例(需提前用 @pytest.mark.MARKER 标记用例)。
  • --collect-only:仅收集用例但不执行(用于查看用例列表)。
  • --ignore=PATH:忽略指定路径的测试。

3. 输出控制

  • -s:禁用输出捕获(直接打印 print 的输出)。
  • -r:显示测试摘要(附加选项如 -rA 显示全部,-rE 显示错误等)。
  • --tb=STYLE:设置错误回溯的显示方式(如 --tb=short 简洁回溯,--tb=no 禁用)。
  • --show-capture={no,stdout,stderr,log,all}:控制捕获输出的显示方式。

4. 调试与跟踪

  • --pdb:在测试失败时进入调试模式(pdb)。
  • --trace:在每个测试用例开始时进入调试模式。
  • --setup-show:显示测试的 setupteardown 过程。

5. 测试目录/文件

  • rootdir:指定根目录(默认从当前目录搜索测试文件)。
  • -c FILE:指定配置文件(默认为 pytest.initox.inisetup.cfg)。

6. 并行执行

  • -n NUM / --numprocesses=NUM:使用多进程并行执行测试(需安装 pytest-xdist 插件)。

7. 生成报告

  • --junitxml=FILE:生成 JUnit 格式的 XML 报告(用于 CI/CD 集成)。
  • --html=FILE:生成 HTML 格式的测试报告(需安装 pytest-html 插件)。

8. 参数化与配置

  • --fixtures:显示所有可用的 fixtures(--fixtures-per-test 显示每个测试的 fixtures)。
  • --durations=N:显示最慢的 N 个测试耗时(--durations=0 显示全部)。

示例命令

# 运行名称包含 "login" 的测试,显示详细信息,失败时停止
pytest -v -k "login" -x

# 运行标记为 "smoke" 的测试,并生成 HTML 报告
pytest -m smoke --html=report.html

# 多进程运行测试(4 进程)
pytest -n 4

unittest vs pytest 对比

特性unittestpytest
语法简洁性需要继承类,使用断言方法(如 self.assertEqual()直接使用 assert,更简洁
高级功能较少支持fixture、参数化测试、插件系统等
兼容性Python内置,无需安装需单独安装
测试发现需遵循特定规则(如 test_ 前缀)更灵活的测试发现机制

查看完整参数


Comment