maven-surefire-plugin
maven-surefire-plugin
是maven
执行单元测试的插件,不显性配置也可以直接使用。- 这个插件的
surefire:test
命令会默认绑定maven
执行的test
阶段。 - 执行结束后,默认在
target/surefire-reports
目录下会生成txt
和xml
两种格式的结果,不利于直观展示,需要结合其它插件一起使用。
如果你自己声明了,那么可以指定自己的版本,并且可以配置自定义的参数。
配置示例
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><!-- 是否忽略单元测试 --><skipTests>false</skipTests><!-- 是否忽略执行执行的单元测试 --><testFailureIgnore>true</testFailureIgnore><argLine>${argLine}</argLine></configuration></plugin>
- argLine参数说明
- jacoco:report-aggregate聚合报告后,覆盖率显示为0,与这个参数有关
- jacoco在prepare-agent阶段会生成一个属性指向jacoco的runtime agent,默认这个属性叫argLine
- 需要在maven-surefire-plugin的配置中,引用这个属性
maven-surefire-report-plugin
为单元测试生成
html
报告,默认位置
target/site/surefire-report.html
配置示例
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-report-plugin</artifactId><version>${maven-surefire-report-plugin.version}</version><executions><execution><id>report</id><phase>test</phase><goals><goal>report</goal></goals></execution></executions></plugin>
执行mvn test时,会生成报告
效果预览
jacoco-maven-plugin
用于生成代码覆盖率报告,可以帮助我们了解代码中哪些部分已经被测试覆盖,哪些部分需要更多的测试,默认位置
target/site/jacoco/index.html
配置示例
<plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><executions><execution><goals><goal>prepare-agent</goal></goals><configuration><!-- 需要修改maven-surefire-plugin插件的<argLine>配置,默认是argLine --><propertyName>argLine</propertyName></configuration></execution><execution><id>report</id><phase>test</phase><goals><goal>report</goal></goals></execution></executions><configuration><!--是否使用追加的模式,如果为false,新的报告会替换旧的报告--><append>false</append><!-- rules里面指定覆盖规则 --><rules><ruleimplementation="org.jacoco.maven.RuleConfiguration"><element>BUNDLE</element><limits><!-- 指定方法覆盖到80% --><limitimplementation="org.jacoco.report.check.Limit"><counter>METHOD</counter><value>COVEREDRATIO</value><minimum>0.80</minimum></limit><!-- 指定指令覆盖到80% --><limitimplementation="org.jacoco.report.check.Limit"><counter>INSTRUCTION</counter><value>COVEREDRATIO</value><minimum>0.80</minimum></limit><!-- 指定行覆盖到80% --><limitimplementation="org.jacoco.report.check.Limit"><counter>LINE</counter><value>COVEREDRATIO</value><minimum>0.80</minimum></limit><!-- 指定类覆盖到100%,不能遗失任何类 --><limitimplementation="org.jacoco.report.check.Limit"><counter>CLASS</counter><value>MISSEDCOUNT</value><maximum>0</maximum></limit></limits></rule></rules></configuration></plugin>
效果展示
如果覆盖率显示为0,需要修改maven-surefire-plugin插件的配置
版权归原作者 太空眼睛 所有, 如有侵权,请联系我们删除。