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

遵循规范创建测试模块后,Pytest提示collecting 0 items问题求助

解决pytest提示‘collecting 0 items’的问题

我来帮你排查这个常见的pytest问题,咱们从最容易踩坑的点开始逐一核对:

1. 先确认运行pytest的路径是否正确

你的目录结构是:

integration_tests/
    tests/
        test_integration_use_cases.py

这是最容易出错的地方!如果直接在integration_tests目录下敲pytest,它可能找不到tests子目录里的测试文件。你需要指定目标路径:

# 方式1:指定tests目录
pytest tests/
# 方式2:直接指定测试文件
pytest tests/test_integration_use_cases.py

要是你在项目根目录(integration_tests是根目录的子文件夹),就得把路径写全:

pytest integration_tests/tests/

当然,最稳妥的是直接进入integration_tests/tests目录,再运行pytest,这样它会自动扫描当前目录的测试文件。

2. 检查测试类和方法的命名规范

pytest对命名有严格要求:

  • 测试类必须以Test开头,且不能有__init__方法——你的TestSomeIntegration是符合要求的,这点没问题。
  • 测试方法必须以test_开头,比如你的test_some_integration...,要确保没写成Test_some...或者别的格式,少个下划线都不行。

3. 排查导入路径是否有问题

你的测试文件里导入了some_tests.integration_tests.backbone.SomeIntegrationTestBase,如果这个导入路径不对,会导致测试类无法被正常加载,pytest自然收集不到用例。可以先单独运行测试文件验证:

python test_integration_use_cases.py

如果出现ImportError,要么调整导入语句,要么把项目根目录加入Python环境变量:

# Linux/macOS
export PYTHONPATH=/path/to/your/project/root:$PYTHONPATH
# Windows
set PYTHONPATH=C:\path\to\your\project\root;%PYTHONPATH%

4. 检查是否有配置文件限制了扫描范围

如果项目里有pytest.ini、tox.ini或setup.cfg,看看里面有没有设置testpaths、python_classes这类选项——要是testpaths指定了其他目录,你的测试文件就会被排除在外。

5. 确认虚拟环境是否正确激活

如果你用了虚拟环境,要确保激活了对应环境,且pytest是安装在这个环境里的。有时候全局pytest和虚拟环境的版本/依赖不一致,也会导致识别问题。可以用which pytest(Linux/macOS)或where pytest(Windows)查看当前使用的pytest路径。

先从运行路径和命名规范查起,这两个是最常见的诱因,排查完应该就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:16:35