赞
踩
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的配置中,引用这个属性
为单元测试生成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时,会生成报告
用于生成代码覆盖率报告,可以帮助我们了解代码中哪些部分已经被测试覆盖,哪些部分需要更多的测试,默认位置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>
<rule implementation="org.jacoco.maven.RuleConfiguration">
<element>BUNDLE</element>
<limits>
<!-- 指定方法覆盖到80% -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>METHOD</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
<!-- 指定指令覆盖到80% -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
<!-- 指定行覆盖到80% -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
<!-- 指定类覆盖到100%,不能遗失任何类 -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>0</maximum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</plugin>
如果覆盖率显示为0,需要修改maven-surefire-plugin插件的配置
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。