我在父级pom中使用的配置,我有单独的单元和集成测试阶段。
我在父POM中配置以下属性属性
2.19.1
0.7.6.201602180812
0.52
0.40
15
false
${project.basedir}/../target/coverage-reports/jacoco.exec
java
**/generated-sources/**/*
jacoco
${jacoco.excludePattern}
reuseReports
${project.basedir}/../target/coverage-reports
${skipTests}
${skipTests}
我将插件定义放在插件管理下。
请注意,我为surefire(surefireArgLine)和failsafe(failsafeArgLine)参数定义了一个属性,以允许jacoco配置javaagent以便在每次测试时运行。
在pluginManagement下
org.apache.maven.plugins
maven-compiler-plugin
3.1
true
1024m
1024m
-g
${maven.compiler.source}
${maven.compiler.target}
${project.build.sourceEncoding}
org.apache.maven.plugins
maven-surefire-plugin
2.19.1
4
false
-Xmx2048m ${surefireArgLine}
**/*Test.java
**/*IT.java
${skip.surefire.tests}
org.apache.maven.plugins
maven-failsafe-plugin
2.19.1
org.apache.maven.surefire
surefire-junit47
2.19.1
4
false
${failsafeArgLine}
**/*IT.java
${skip.failsafe.tests}
integration-test
integration-test
verify
verify
org.jacoco
jacoco-maven-plugin
${jacoco.plugin.version}
true
**/*.mar
${jacoco.excludePattern}
BUNDLE
LINE
COVEREDRATIO
${jacoco.check.lineRatio}
BRANCH
COVEREDRATIO
${jacoco.check.branchRatio}
METHOD
COMPLEXITY
TOTALCOUNT
${jacoco.check.complexityMax}
pre-unit-test
prepare-agent
${jacoco.destfile}
true
surefireArgLine
post-unit-test
test
report
${jacoco.destfile}
${sonar.jacoco.reportPath}
${skip.surefire.tests}
pre-integration-test
pre-integration-test
prepare-agent-integration
${jacoco.destfile}
true
failsafeArgLine
post-integration-test
post-integration-test
report-integration
${jacoco.destfile}
${sonar.jacoco.reportPath}
${skip.failsafe.tests}
...
并在构建部分
org.apache.maven.plugins
maven-compiler-plugin
org.apache.maven.plugins
maven-surefire-plugin
org.apache.maven.plugins
maven-failsafe-plugin
org.jacoco
jacoco-maven-plugin
....
并在报告部分
org.apache.maven.plugins
maven-surefire-report-plugin
${maven.surefire.report.plugin}
false
true
true
true
org.jacoco
jacoco-maven-plugin
${jacoco.plugin.version}
**/*.mar
${jacoco.excludePattern}