Jenkins工作区无法生成测试报告:Docker集成CI/CD项目问题
Jenkins执行Maven测试无报告问题排查与修复
问题场景
在Docker集成的Jenkins CI/CD项目中,本地执行mvn clean install和mvn clean test均能成功生成测试报告,但Jenkins流水线运行时:
- 未在Jenkins中显示测试记录
- 工作目录下未生成
target/surefire-reports/*.xml文件
对应的Jenkins流水线代码:
node { try { stage('Copy Project') { sh ''' rm -rf DockerLoginTest mkdir DockerLoginTest cp pom.xml DockerLoginTest/ cp -r /Users/feyzaerdogan/Desktop/cypress/DockerJenkinsLoginTest/src DockerLoginTest/src cd DockerLoginTest ''' } stage('Build') { sh 'mvn clean install -U' } stage('Test') { sh 'mvn test' } } finally { // Bu kısım her zaman çalışır (post-always gibi) junit 'target/surefire-reports/*.xml' } }
核心原因
Shell脚本的目录切换仅在当前脚本块内生效:Copy Project阶段的sh脚本里执行了cd DockerLoginTest,但这个操作只在该sh进程的会话中有效。后续Build、Test阶段的mvn命令依然在Jenkins节点的默认工作目录执行,找不到DockerLoginTest下的pom.xml,自然不会生成target目录和测试报告。
修复方案
方案1:为每个Maven命令指定工作目录
修改Build和Test阶段的Shell命令,通过&&串联目录切换和Maven命令,确保在正确的目录下执行构建:
node { try { stage('Copy Project') { sh ''' rm -rf DockerLoginTest mkdir DockerLoginTest cp pom.xml DockerLoginTest/ cp -r /Users/feyzaerdogan/Desktop/cypress/DockerJenkinsLoginTest/src DockerLoginTest/src ''' } stage('Build') { sh 'cd DockerLoginTest && mvn clean install -U' } stage('Test') { sh 'cd DockerLoginTest && mvn test' } } finally { // 修正测试报告路径,指向DockerLoginTest下的target目录 junit 'DockerLoginTest/target/surefire-reports/*.xml' } }
方案2:使用Jenkins dir块统一切换工作目录
利用Jenkins内置的dir步骤,将后续构建、测试阶段统一切换到目标目录,代码更简洁易维护:
node { try { stage('Copy Project') { sh ''' rm -rf DockerLoginTest mkdir DockerLoginTest cp pom.xml DockerLoginTest/ cp -r /Users/feyzaerdogan/Desktop/cypress/DockerJenkinsLoginTest/src DockerLoginTest/src ''' } // 切换到DockerLoginTest目录,后续阶段均在此目录执行 dir('DockerLoginTest') { stage('Build') { sh 'mvn clean install -U' } stage('Test') { sh 'mvn test' } } } finally { junit 'DockerLoginTest/target/surefire-reports/*.xml' } }
额外验证点
- 权限检查:确保Jenkins运行用户对
DockerLoginTest目录拥有读写权限,避免因权限不足无法生成target目录。 - Maven配置一致性:确认Jenkins中配置的Maven版本、
settings.xml与本地环境一致,防止因依赖拉取失败导致测试未执行。
内容的提问来源于stack exchange,提问作者Feyza Erdoğan
相关产品推荐
相关产品推荐

