You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排查unittest+pytest环境下测试用例被跳过的原因?

让pytest显示unittest SkipTest的跳过原因

当你用pytest执行基于unittest编写的测试时,默认情况下可能不会展示unittest.SkipTest()抛出的跳过原因,不过通过添加pytest的报告参数就能轻松解决这个问题:

1. 临时修改命令行参数

在你的pytest命令中加入-rs参数,它会让pytest在测试结束的摘要部分显示所有被跳过测试的具体原因。如果还想同时查看失败测试的详情,可以用-rxs(其中x代表失败测试,s代表跳过测试)。

修改后的命令参数如下:

['-p', 'vscode_pytest', '-vv', '-rs', '--rootdir=/Users/roysmith/dev/pywikibot', '/Users/roysmith/dev/pywikibot/core/tests/site_tests.py::TestGetParsedPage::test_get_with_default_parser']

执行后,你应该能在测试结果的摘要里看到类似这样的内容:

============================== 1 skipped in 0.94s ==============================
SKIPPED [1] core/tests/site_tests.py::TestGetParsedPage::test_get_with_default_parser: 这里会显示具体的跳过原因

2. 永久配置(避免每次手动加参数)

如果不想每次执行测试都重复添加-rs,可以在项目的tox.ini或者pytest.ini配置文件中添加默认选项:

[pytest]
addopts = -rs

这样后续每次执行pytest时,都会自动展示跳过测试的原因。

补充说明

pytest的-r参数用于控制测试结果摘要的显示内容,常用选项包括:

  • s: 显示跳过(skipped)测试的原因
  • x: 显示失败(failed)测试的详情
  • f: 显示失败(failed)测试的简洁摘要
  • p: 显示通过(passed)的测试(默认不展示)

内容的提问来源于stack exchange,提问作者Roy Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 06:38:58