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

GitLab CI/CD中pytest无法识别test_*脚本及覆盖率收集失败问题

问题原因及解决方法

核心问题:路径不匹配导致Coverage无法收集数据

可能的原因及对应解决方案:

  • 工作目录与路径参数不匹配
    你在CI中使用测试目录的绝对路径执行pytest,但--cov=src是相对当前工作目录的路径。如果CI的当前工作目录不是项目根目录(/builds/cdf/Platform/onprem-core-functions/),Coverage会找不到src目录,导致无数据收集。
    解决:先切换到项目根目录,再用相对路径执行命令:

    cd /builds/cdf/Platform/onprem-core-functions/
    pytest tests/ --cov=src --cov-report xml:coverage/cov.xml --cov-branch
    
  • 测试脚本无法正确导入业务模块
    当测试放在tests目录时,Python默认的模块搜索路径可能不包含项目根目录,导致测试脚本无法导入src下的业务代码,测试实际没执行到业务逻辑,Coverage自然无数据。
    解决:在tests目录下创建conftest.py文件,添加以下代码将项目根目录加入Python路径:

    import sys
    from pathlib import Path
    sys.path.append(str(Path(__file__).parent.parent))
    
  • 测试目录路径拼写错误
    你提到测试脚本放在tests目录,但CI命令中写的是/builds/cdf/Platform/onprem-core-functions/test/(缺少一个s),如果实际目录是tests,pytest会找不到测试用例,导致Coverage无数据。
    解决:检查并修正CI命令中的测试目录路径,确保和实际目录一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:16:09