1、什么是 IDEA

IDEA 全称 IntelliJ IDEA,是 Java 编程语言开发的集成环境。IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(git、SVN 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。

2、什么是 JaCoCo

JaCoCo 是一个免费、开源 Java 代码覆盖率工具。

3、IDEA 为什么要集成 JaCoCo

方便查看单元测试用例覆盖率。

4、集成步骤

4.1、被测类

注意:被测类要放在 main 下面,而不是 test 下面

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_软件测试

编辑切换为居中

添加图片注释,不超过 140 字(可选)

4.2、单元测试用例

注意:单元测试类(CalcTest)必须和被测类(Calc)在同一个包下(com.lemon.testng)

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_测试工程师_02

编辑切换为居中

添加图片注释,不超过 140 字(可选)

4.3、配置 Code Coverage

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_软件测试_03

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择 Edit Configurations

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_java 单元测试覆盖 vscode_04

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择 Code Coverage,再选择 JaCoCo

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_java 单元测试覆盖 vscode_05

编辑切换为居中

添加图片注释,不超过 140 字(可选)

右键选择 Run with Coverage

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_测试用例_06

编辑切换为居中

添加图片注释,不超过 140 字(可选)

自动弹出代码覆盖率界面

4.4、覆盖率报表

报表相对简单,Class 表示类覆盖率,Method 表示方法覆盖率,Line 表示行覆盖率

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_测试工程师_07


编辑切换为居中

添加图片注释,不超过 140 字(可选)

4.5、代码覆盖情况

单元测试用例主只写了 add 方法,所以 add 方法显示绿色,覆盖状态,sub 方法显示红色,未被覆盖。

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_java 单元测试覆盖 vscode_08

编辑切换为居中

添加图片注释,不超过 140 字(可选)

新增一个 sub 方法测试用例,再来看结果。

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_intellij-idea_09

编辑切换为居中

添加图片注释,不超过 140 字(可选)

首先 Method 从 1 变成 2,Line 数也增多了。

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_软件测试_10


编辑切换为居中

添加图片注释,不超过 140 字(可选)

其次,sub 方法颜色也有变化,if 仍是红色, 但是 else 变成绿色,说明 eles 分支被覆盖。

java 单元测试覆盖 vscode idea java单元测试代码覆盖率_测试工程师_11


编辑切换为居中

添加图片注释,不超过 140 字(可选)

5、总结

通过上述例子可以看出,通过查看覆盖率,逐步善测试用例,写出的用例至少能保障每个分支都被执行,相比通过需求写用例更能排查出潜在 bug。

需求 ≠代码,不能仅围绕需求写用例,借助 JaCoCo 覆盖率工具编写用例,更符合实际工作需求,更省心省力。