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、查看测试报告


参考:
