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、查看測試報告


參考:
