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

Cypress在Bitbucket Pipelines中命令行动态修改baseUrl失效问题

问题根因

你直接执行./hybris-url-mapping.sh时,系统会创建独立的子shell运行脚本内容,在脚本中给CYPRESS_BASE_URL赋值的操作仅在这个子shell内生效。脚本执行结束后子shell销毁,父shell(也就是Bitbucket Pipeline的当前执行环境)里的CYPRESS_BASE_URL仍为初始的空值,因此后续传给Cypress的参数实际是空值,自然会 fallback 到cypress.json里的默认配置。你在脚本中看到的echo输出只是子shell内的变量值,不代表父shell的变量被成功修改。

修复方案
  • 调整脚本执行方式,改用source命令在当前shell环境执行脚本,让变量赋值可以保留到后续命令执行阶段:
    将Pipeline中的脚本行

    - ./hybris-url-mapping.sh $CYPRESS_BASE_URL
    

    改为

    - source ./hybris-url-mapping.sh
    

    原命令传入的$CYPRESS_BASE_URL参数在脚本中没有用到,可以直接删除。

  • (可选)简化Cypress执行命令:Cypress原生支持识别CYPRESS_前缀的环境变量,只要环境变量里的CYPRESS_BASE_URL生效,直接执行npx cypress run就会自动覆盖配置文件中的baseUrl,不需要手动传--env或者--config参数。

修复后可以在source脚本之后加一行echo $CYPRESS_BASE_URL,确认父shell中的变量值符合预期即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:09:03