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

BitBucket Pipeline远程CI/CD服务器测试中能否加载测试资源文件?

问题原因

你遇到的报错是工作目录不一致导致的路径拼接错误,CI环境本身完全支持加载测试用文件:

  • 本地执行测试时,你的工作目录是项目根目录my_repository,所以Directory.current.path拿到的路径拼接/test/assets/xxx.png后和实际文件路径匹配
  • BitBucket Pipeline默认的工作目录为/opt/atlassian/pipelines/agent/build,如果你的CI脚本没有切换到项目根目录,拼接出的路径就会缺失my_repository层级,和报错里显示的非法路径完全吻合
解决方案

以下方案任选其一即可修复:

  1. 调整CI执行路径
    在bitbucket-pipelines.yml的测试执行步骤前,增加切换目录命令,和本地执行逻辑对齐:
script:
  - cd my_repository # 切换到项目根目录
  - <你的测试执行命令>
  1. 替换为相对脚本的路径拼接(更稳妥)
    不依赖当前工作目录,直接基于测试脚本的位置解析资源路径,避免不同环境的目录差异:
import 'dart:io';
import 'dart:io' show Platform;

// 测试代码中加载资源的逻辑替换为:
final testScriptDir = Platform.script.resolve('./').toFilePath();
final imagePath = testScriptDir + '../assets/test_image_gradient_black_white_3000x4000.png';
File myFile = File(imagePath);
  1. 增加调试步骤确认路径
    如果以上方案未生效,可以在CI脚本中增加目录打印命令,确认资源实际存放位置:
pwd # 打印当前工作目录
ls -R # 打印当前目录下的所有文件结构

内容的提问来源于stack exchange,提问作者Joel Broström

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:57:05