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

Jenkins执行Cucumber测试时指向本地目录而非GitHub仓库的问题求助

Jenkins执行Cucumber测试时指向本地目录而非GitHub仓库的问题求助

各位好,我遇到一个Jenkins执行Cucumber测试的棘手问题,想请大家帮忙看看:

我在本地机器上用8080端口运行Jenkins,已经通过插件把Jenkins和我的GitHub仓库关联起来了,而且确认Jenkins能正常读取到仓库里的Jenkinsfile。

先贴一下我的Jenkinsfile内容:

pipeline {
    agent any
    stages {
        stage('Build & Run Cucumber Tests') {
            steps {
                dir ('DeltaFlight'){ 
                    // For Maven projects: 
                    sh 'mvn clean test -Dcucumber.options="@login"' 
                    // 注:我发现原代码里的`cucumber.optioms`是拼写错误,应该是`cucumber.options`
                    // For Gradle projects: 
                    // sh './gradlew clean test -Dcucumber.filter.tags="@your_tag"' 
                }
            }
        }
        stage('Publish Cucumber Reports') {
            steps {
                // Ensure the Cucumber reports plugin is installed in Jenkins
                cucumber buildStatus: 'UNSTABLE', fileIncludePattern: '**/*.json'
            }
        }
    }
}

但当流水线执行到dir ('DeltaFlight')这个步骤时,我收到了以下错误:

Cannot run program "sh" (in directory "C:\ProgramData\Jenkins.jenkins\workspace\Selenium2withGit\DeltaFlight")

这里的核心问题是:这个报错里的目录是我本地机器的路径,但我实际想执行的是GitHub仓库里的LoginPageNCS.feature文件,完全不想用到本地的文件。我已经确认GitHub仓库的目录结构里确实有DeltaFlight文件夹,并且里面存放着我要跑的LoginPageNCS.feature文件,但Jenkins好像一直在试图访问我本地的目录,而不是使用从GitHub拉取到工作区的仓库代码。

另外,我还注意到sh命令的报错,会不会和我在Windows系统上运行Jenkins有关?毕竟Windows默认没有sh这个命令?

我已经做了这些排查:

  • 确认Jenkins能正常读取到GitHub仓库中的Jenkinsfile
  • 确认GitHub仓库的目录结构符合预期,DeltaFlight文件夹和对应的feature文件都存在

想请教大家:

  1. 怎么配置才能让Jenkins正确使用从GitHub拉取的仓库代码来执行测试,而不是指向我本地的目录?
  2. 这个sh命令的报错该怎么解决?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 11:29:34