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

拆分Pytest测试文件后执行报错:Test result not found for: ./tests/test.py的排查方案

拆分Pytest测试文件后执行报错:Test result not found for: ./tests/test.py的排查方案

我帮你梳理几个常见的排查方向,应该能解决这个问题:

  • 检查Pytest的命名规范(最容易踩坑的点)
    Pytest默认只会自动识别两类文件:一是以test_开头的文件,二是以_test.py结尾的文件;同时文件内的测试函数必须以test_开头。
    你的test.py文件名不符合默认规则(建议改成test_db_sync.py这类符合规范的名字),如果一定要用test.py,要么执行时明确指定文件路径,要么修改pytest配置文件让它识别这个文件名。另外如果querytest.py里有测试函数,也要确保函数名以test_开头,否则Pytest会直接忽略。

  • 确认conftest.py的fixture是否被正确识别
    因为三个文件都在同一个tests目录下,conftest.py里的fixture是会被Pytest自动加载的,不需要手动导入。你可以检查下:

    • 有没有在conftest.py里导入pytest,并给连接函数加上@pytest.fixture装饰器,比如:
      import pytest
      import psycopg2
      
      @pytest.fixture(scope="module")
      def source_db_conn():
          conn = psycopg2.connect(host="xxx", ...)
          yield conn
          conn.close()
      
    • fixture的scope设置是否合理(比如module或session),避免连接提前被关闭。
  • 检查test.py对querytest模块的导入是否正确
    同目录下的模块要使用相对导入,比如在test.py里这么写:

    from .querytest import generate_sql_commands
    

    不要用绝对导入(比如import querytest),除非你把tests目录加到了Python的sys.path里,不然会出现导入错误,导致测试文件无法被加载,Pytest自然找不到测试结果。

  • 确认测试函数的写法是否符合Pytest规范
    测试函数要把fixture作为参数传入,而不是自己调用fixture函数。举个例子:

    import pytest
    from .querytest import generate_sql_commands
    
    def test_sync_database(source_db_conn, target_db_conn):
        # 调用工具函数生成SQL命令
        sql_cmds = generate_sql_commands(source_db_conn)
        # 执行到目标库
        with target_db_conn.cursor() as cur:
            for cmd in sql_cmds:
                cur.execute(cmd)
            target_db_conn.commit()
        # 别忘了加断言验证结果,比如检查目标库数据是否正确
        # ...
    

    如果直接调用source_db_conn(),会绕过Pytest的fixture生命周期管理,可能导致连接异常。

  • 检查Pytest的执行命令是否正确
    尽量在项目根目录执行命令,比如:

    pytest ./tests/test.py -v
    

    如果在tests目录内部执行,可能会导致Pytest的路径识别混乱,比如找不到conftest.py里的fixture。另外如果文件名不符合默认规范,必须明确指定文件路径,否则Pytest会忽略它。

  • 排查隐藏的导入/语法错误
    如果Pytest没明确报错,你可以用pytest --tb=short ./tests/test.py查看详细错误,或者直接用python ./tests/test.py运行测试文件,看看有没有导入失败、语法错误这类问题——这些问题会导致测试文件无法被正确加载,进而触发“找不到测试结果”的报错。

备注:内容来源于stack exchange,提问作者AzUser1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:49:28