在http://blog.csdn.net/cloud_ll/article/details/45290169中我介绍了如何使用failsafe实现自动化集成测试。那么肯定就需要对集成测试的测试用例的测试覆盖度进行统计。sonar中可以很容易的加入集成测试报告。
首先,在集群测试failsafe配置中,为了测试代码覆盖度,需要使用jacoco或者cobertura等工具来帮助检查代码的运行时执行情况。这里分2种情况:
1. 对于测试用例是通过failsafe内部执行的用例,在failsafe插件configuration中加入argLine节点($agent指向jacoco agent,$file指明分析结果文件路径,includes指明哪些文件要分析):
<argLine>-javaagent:${jacoco.agent.path}=destfile=${jacoco.file.path}</argLine>,includes=com.cloud.*
2. 对于测试用例是请求与外部容器中war交互的,需要在容器的启动中加入jacoco启动参数。
其次运行集成测试(mvn:verify),然后执行mvn
-Dsonar.jacoco.itReportPath="${jacoco.file.path}
"
sonar:sonar,将集成测试结果导入sonar数据库中。
最后很重要的一点,我第一次搭建sonar环境时也犯过的问题,没有在sonar中通过configure widgets加入integration显示。自己研究了半天还以为是哪个步骤出错了,真心汗。。。
最后给个成功后的图片:
原文地址:http://blog.csdn.net/cloud_ll/article/details/45293185