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

使用pytest执行test_login.py时显示“Collected 0 items”求助

解决pytest收集0个测试用例的问题

一、再次核对命名规则(别嫌麻烦,再仔细过一遍)

  • 确认测试文件名和命令里的路径大小写一致:类Unix系统(Linux/macOS)区分大小写,如果你实际文件名是test_login.py,命令里写成test_Login.py会匹配失败;Windows系统不区分,但统一大小写更稳妥
  • 测试类必须以Test开头,且不能定义__init__方法,比如TestLogin是合法的,LoginTest则不被pytest识别
  • 测试方法/函数必须以test_开头,比如test_valid_login,不能写成valid_login_test

二、检查路径与运行目录

  • 确保你的项目结构符合预期,比如:
    项目根目录/
        TestCases/
            test_login.py
    
  • 必须在项目根目录下执行命令,或者给路径加上明确的相对前缀,比如pytest -v -s ./TestCases/test_login.py
  • 如果TestCases是Python包,要确保文件夹里有__init__.py文件(空文件即可)

三、检查代码结构是否符合要求

你的test_login.py代码结构应该类似下面的合法示例,隐性的结构问题会导致pytest无法识别用例:

# 合法示例1:测试类+测试方法
class TestLogin:
    def test_valid_credentials(self):
        # 测试逻辑
        assert True

    def test_invalid_password(self):
        # 测试逻辑
        assert False

# 合法示例2:直接定义测试函数
def test_empty_username_login():
    # 测试逻辑
    assert False
  • 检查是否有语法错误(虽然没报错,但隐性的缩进、括号缺失等问题也可能导致用例不被识别)
  • 删除项目里的__pycache__和.pytest_cache文件夹,缓存异常可能干扰用例收集

四、其他排查手段

  • 运行pytest -v --collect-only TestCases/test_login.py,这个命令会只执行用例收集过程,输出详细的识别日志,能帮你定位到底哪一步出了问题
  • 检查测试用例是否被@pytest.mark.skip/@pytest.mark.skipif装饰器标记跳过
  • 升级pytest到最新稳定版:pip install --upgrade pytest,旧版本可能存在规则兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:33:18