代码的单元测试覆盖率是衡量代码质量的标准之一,保证一定的ut覆盖率可以帮助提高开发人员的项目提测质量。本文将介绍如何在idea下利用openclover插件提高ut覆盖率。
安装idea插件
Atlassian Clover for IDEA
从ItelliJ IDEA —>Preference—>plugins,idea中有自带的插件可供安装,我们可以搜索到该插件。点击安装之后成功之后我们发现该插件需要舒服注册码license。并且我们根据引导无法从Atlassian获取到对应的注册码。感谢国际友人,在一个论坛上发现该插件已经开源,我们可以通过导入插件的方式安装。
OpenClover for IDEA
1.进入OpenClover官网,根据快速开始OpenClover for IDEA我们将下载到的jar包直接导入到idea下,ItelliJ IDEA —>Preference—>plugins—>Install plugin from disk,如下图:
2.点击View -> Toolbar显示插件按钮,如下图:
3.通过Preference—>Build,Execution,Deployment—>Clover setting(global settings)—>Clover setting(project setting)我们可以进行一些插件的设置,如下图:
单元测试覆盖
一般在开发过程中,开发会对dao层和service层进行基本的单元测试回归保证代码的交付质量,当然单元测试可能并没有覆盖到代码的全部情况。单元测试覆盖需要尽可能覆盖到我们的代码。在使用插件的过程中我们可以看到一张覆盖率的图表:
这里主要做了service层的单元测试覆盖,覆盖率平均到了80以上,但是整个项目的覆盖率只有30不到。这里是因为插件统计项目中每个类进行的每个方法以及代码的覆盖率,包括控制层代码。代码中会显示绿色的为覆盖到的代码,红色的未覆盖的代码,包括一些异常,未被执行到的判断。判断如果是多个参数的,需要考虑到所有的情况才算是百分之100通过,可以看到覆盖代码如图:
总结
本次单元测试覆盖率是鉴于部门对代码质量的要求,延续之前增加了sonar自定义检测代码规则。提升代码覆盖率的过程中发现其实是个体力活,这样的覆盖也许在后续补充为了达到指标也许并没有意义。这也许是为了我们可以在项目开发的过程中来补充单元测试用例保证代码交付质量,如果放到后面再来补,也就本末倒置了。希望今后的代码都能在开发过程中做到充分的单元测试。