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文件都存在
想请教大家:
- 怎么配置才能让Jenkins正确使用从GitHub拉取的仓库代码来执行测试,而不是指向我本地的目录?
- 这个
sh命令的报错该怎么解决?
内容来源于stack exchange
相关产品推荐
相关产品推荐

