目录
- 原因
- 解决
- 通过IDEA的TestMe重新生成测试类
- eclipse生成测试类
- JUnit Test Suite
- 其它
- 查看覆盖率
- 覆盖catch代码
- 我问GPT 整jacoco有意义嘛
前几天解决了无法生成jacoco.exec执行文件问题后,发现编写测试类好像无效,代码覆盖率全为0
原因
通过eclipse
直接生成的junit
测试类,太简单,缺少mock
相关注解,因此没有扫描到。针对spring boot
项目,测试引入的spring-boot-starter-test-2.1.13.RELEASE.jar
包,会自动依赖junit
和mock
,如下图:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.1.13.RELEASE</version>
<scope>test</scope>
</dependency>
解决
通过IDEA的TestMe重新生成测试类
- 安装TestMe插件:
File->Settings->Plugins
- 打开要生成测试的类,右键
- 选择TestMe
- 选择
JUnit4 &Mock
(点击确认Add,会自动生成到test目录下)
- 结果
eclipse生成测试类
- 不需要进入类内部,直接在右键类
new->Other
- 选择
Junit Test case
- 勾选要生成的方法,确认
- 结果
JUnit Test Suite
直接GPT,免费1000次,需要的请至基于OpenAi的ChatGPT3.5接口开发的免费聊天工具,邀请码:1020554
在Eclipse中,JUnit Test Suite是用于组织和管理多个JUnit测试类的容器。它是一个包含了多个测试类的特殊类,可以帮助你运行一组相关的JUnit测试。
JUnit Test Suite的作用有以下几个方面:
1.组织和管理测试类:当项目中有多个JUnit测试类时,使用JUnit Test Suite可以将这些测试类组织在一起,形成一个逻辑上相关的测试集合。这样可以方便地对多个测试类进行管理和执行。
2.定义测试运行顺序:JUnit Test Suite可以定义测试类的运行顺序,确保测试类按照指定的顺序进行执行。这对于依赖于其他测试类的测试场景非常有用,可以确保测试的有序执行。
3.提供测试组合:通过JUnit Test Suite,可以将不同的测试类组合在一起,形成不同的测试组合。这样可以针对不同的测试场景创建多个测试集合,并对每个测试集合进行独立的执行。
4.简化测试运行:使用JUnit Test Suite可以简化测试的运行过程。你只需右键点击JUnit Test Suite类,并选择运行该测试集合,就可以一次性运行整个测试集合中的所有测试类。
通过JUnit Test Suite,你可以更好地组织和管理测试类,提高测试代码的可维护性和执行效率。它在Eclipse中是一种方便的工具,特别适用于大型项目或多模块项目中的测试管理
其它
查看覆盖率
执行mvn clean test
之后,会生成响应结果文件
覆盖catch代码
- 自动生成的方法,直接调用的Controller,此时触发不到catch逻辑
- 改造(纯验证,没意义)
注意:
- 是触发Controller代码到异常逻辑,不是测试类包一层catch
- 直接调用service这种也试了,也是没效果,直接new的对象,正常调用service是会抛异常的…头大
- 验证覆盖率发生了变化,但是… - 意义何在(按照公司要求倒是达到覆盖率60%了)
我问GPT 整jacoco有意义嘛
基于OpenAi的ChatGPT3.5接口开发的免费聊天工具的答案如下: