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

GitHub CI运行单元测试报文件不存在错误但本地Windows环境运行正常

问题根因

你遇到的报错核心是相对路径的执行基准目录不匹配,其次存在几个可优化的配置问题:

  1. 路径基准差异:你本地执行单元测试时的工作目录,和GitHub Actions执行step时的默认工作目录(仓库根目录)不一致。你代码中读取reference/buildingblocks2_10.yaml用的是相对路径,相对路径的基准是执行命令时的工作目录,不是当前Python文件的存放目录,所以CI环境下找不到对应文件。
  2. 隐性配置冲突:Windows本地文件系统默认大小写不敏感,即使文件名/目录名大小写和代码里写的不一致也能正常读取,但Git默认大小写敏感,如果仓库里存储的文件名和代码里写的大小写不一致,CI环境就会触发找不到文件的报错。
  3. 工作流配置不规范:Python环境配置步骤的名称标注为Set up Python 3.8,但实际指定的版本是3.9,虽不影响本次报错,但存在配置歧义。

解决方案

  • 优先修改代码路径逻辑(最稳妥,适配所有执行环境):
    修改settings.py中读取文件的代码,基于当前文件的绝对路径拼接目标文件路径,示例代码:
import os
# 获取当前settings.py文件所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接yaml文件的绝对路径
yaml_path = os.path.join(current_dir, "reference", "buildingblocks2_10.yaml")
with open(yaml_path) as fp:
    # 原有读取逻辑
  • 如果不想修改代码,可以直接调整工作流的执行命令,和本地执行的工作目录保持一致:
    把Test with pytest步骤的run命令修改为:
cd linux64/unittest
python -m unittest discover
  • 排查大小写问题:可以在测试步骤前增加一个调试步骤,打印CI环境的文件结构确认文件是否存在:
- name: Check file structure
  run: dir /s /b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:45:00