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

如何在AppVeyor/Travis CI构建中确定配置以运行对应测试程序?

搞定构建版本对应测试程序的配置问题

没问题!我帮你调整下配置,直接引用构建产物路径就能解决这个问题,分AppVeyor和Travis两种情况给你说清楚:

AppVeyor 这边这么改

你原来的配置靠两次cd切换路径,要是中间某一步出问题(比如Build目录没生成),后面的测试命令就跑不起来了。直接用完整路径调用测试程序更稳妥,而且AppVeyor自带的CONFIGURATION环境变量会自动对应你当前的Release/Debug版本。

修改后的appveyor.yml测试脚本:

test_script:
  # 用PowerShell的话这么写(AppVeyor默认是PowerShell)
  - & .\Build\$env:CONFIGURATION\UtilsTests.exe
  # 要是你用Cmd模式,换成下面这行
  # - .\Build\%CONFIGURATION%\UtilsTests.exe

这么做的好处是不用切换目录,不管当前工作目录在哪,都能精准找到对应的测试程序,避免路径切换失败的坑。

Travis CI 这么配置更靠谱

Travis本身没有自带CONFIGURATION变量,你得在matrix里明确指定构建类型,然后用自定义变量来对应路径。另外注意macOS下的可执行文件没有.exe后缀,得区分系统来调用。

修改后的.travis.yml配置:

matrix:
  include:
    - os: osx
      osx_image: xcode14.3 # 把这里换成你实际用的镜像版本
      env: BUILD_TYPE=Release
    - os: osx
      osx_image: xcode14.3
      env: BUILD_TYPE=Debug
    # 要是需要Windows/Linux环境,接着往下加就行
    - os: windows
      env: BUILD_TYPE=Release
    - os: windows
      env: BUILD_TYPE=Debug

test_script:
  # 根据系统类型调用对应的测试程序
  - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then .\Build\%BUILD_TYPE%\UtilsTests.exe; else ./Build/$BUILD_TYPE/UtilsTests; fi

解释下:

  1. 在每个matrix配置项里加env: BUILD_TYPE=XXX,明确当前是Release还是Debug构建
  2. 测试脚本里用TRAVIS_OS_NAME判断系统,Windows下调用带.exe的程序,macOS/Linux下调用不带后缀的版本,跨平台兼容拉满

这样配置完,每次构建都会自动匹配对应版本的测试程序,再也不用手动切换目录啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:22:29