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

pytest收集到带marker标记测试用例但未执行、被取消选择如何解决?

问题产生原因

  • 标记名称不匹配:测试用例上装饰的标记名称、pytest.ini中注册的标记名称、命令行-m参数后填写的标记名称三者拼写/大小写不一致,是最常见的原因。
  • 配置项冲突:pytest.ini、pyproject.toml等配置文件中addopts字段配置了默认的标记过滤规则,和你命令行输入的-m规则存在逻辑冲突,导致匹配到的用例被二次过滤。
  • 用例被强制跳过:目标测试用例同时添加了@pytest.mark.skip、@pytest.mark.skipif等跳过装饰器,即使用标记匹配到也不会执行。
  • 文件匹配错误:当前执行路径下的myfile.py不是你修改了标记配置的目标文件,存在同名文件混淆的情况。

解决思路

  1. 首先执行以下命令查看标记匹配的用例收集结果:
pytest myfile.py -m marker_name -v --collect-only

如果输出中没有显示你要执行的目标用例,直接核对三个位置的标记拼写:用例上方@pytest.mark.后的名称、pytest.ini中markers下的注册名称、命令行-m后的名称,确保三者完全一致。
2. 如果收集结果中有目标用例但仍然不执行,检查pytest配置文件中的addopts字段,是否存在-m "not xxx"这类过滤规则,你可以在命令行添加--no-addopts参数忽略默认配置重试:

pytest myfile.py -m marker_name -v -s --disable-warnings --no-addopts
  1. 打开myfile.py查看目标测试用例的装饰器,确认没有额外添加跳过类装饰器,或者修改跳过条件符合当前运行环境。
  2. 直接打开当前执行路径下的myfile.py,确认文件内容和你编辑的目标文件一致,避免路径错误导致执行了旧文件。

内容的提问来源于stack exchange,提问作者Chins Kuriakose

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:39:05