IT男罗书全凝视着单元测试通过的一条条绿线,长长的舒了一口气,单元测试全部通过。于是他向老孙报告了此一情况,老孙表扬了罗书全,但是又说:“如果能把整个项目的单元测试情况做一个统计,并写成一个报告就好了。”
Maven许多report插件就是针对此类对项目的整体情况的分析统计以给管理人员提供项目质量的一个监控服务的。比如插件cobertura-maven-plugin提供单元测试整体覆盖率以及分支覆盖率的工具,给编写单元测试的开发者提供一个参考,看其中是否存在有重要代码遗漏的情况。
首先在pom.xml中做如下配置:
1: <reporting>
2: <plugins>
3: <plugin>
4: <groupId>org.codehaus.mojo</groupId>
5: <artifactId>cobertura-maven-plugin</artifactId>
6: </plugin>
7: </plugins>
8: </reporting>
然后在项目目录下运行mvn cobertura:cobertura即可生成target目录下生成site\cobertura目录,里面存放了所有的单元测试报告,组织形式如javadoc.其中index.html对所有包的覆盖率做了统计。
点击任意包名,再点击类名,可以看到类中每一行代码是否被覆盖:
如上图所示,左端行号上为绿色的表示应该被覆盖到的代码行,右边无颜色的为已覆盖的代码,红色的为未覆盖的代码,非常直观的提醒了开发者。
需要提醒的是,cobertura只提供了行覆盖率的指标,但是对覆盖的代码质量如何它是无力判断的,不可过度推崇代码覆盖率,还应该和代码走查结合起来看覆盖的测试质量,再做总体判断为宜。
cobertura-maven-plugin还提供了mvn cobertura:check命令来在verify阶段查看代码覆盖率是否达到预设要求,给项目管理者提供了一个检查代码覆盖率的工具。
因此maven给管理者一套监控项目过程中代码质量的统计工具,也给开发者提供了衡量并改进代码测试的工具,提供了开发效率。