1、说明
通过使用 maven-surefire-plugin 插件,maven + junit 会在项目下 target/surefire-reports 目录,提供 txt 和 xml 这两种格式的测试结果,但这样阅读起来不够直观。通过Jenkins集成,可以拥有一个很直观的测试报告。
2、配置 pom.xml
给 pom.xml 文件添加 maven-surefire-plugin 插件,configuration 内容按实际类名配置。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!--表示执行任何子目录下所有命名以Test结尾的java类 --> <includes> <include>**/*Test.java</include> </includes> <!--表示不执行任何子目录下所有命名以Test开头的java类 --> <excludes> <exclude>**/Test*.java</exclude> </excludes> </configuration> </plugin>
3、修改jenkinsfile
分不同分支是否需要生成测试报告,做如下修改。
1)所有分支都要输出测试报告,修改jenkinsfile示例:
stage('package') { agent { docker { image 'maven:3.6-alpine' args '-v /opt/data/aliyun-jenkins-maven:/root/.m2' } } steps { sh 'mvn package -Dmaven.test.skip=false' junit 'target/surefire-reports/*.xml' stash(name: 'copy jar', includes: 'target/*.jar') } }
2)只非master分支需要输出测试报告,修改jenkinsfile示例:
stage('package') { agent { docker { image 'maven:3.6-alpine' args '-v /opt/data/aliyun-jenkins-maven:/root/.m2' } } steps { script { if (env.BRANCH_NAME == 'master') { sh 'mvn package -Dmaven.test.skip=true' }else{ sh 'mvn package -Dmaven.test.skip=false' junit 'target/surefire-reports/*.xml' } } stash(name: 'copy jar', includes: 'target/*.jar') } }
4、查看测试报告
参考: