基于UTgen的自动生成UT案例实践
发表于 2025/12/05
0
1. 背景
某银行xx后端项目基于 Spring Boot 框架开发,采用 Java Web 技术栈,为研发人员提供应用管理、服务管理、集群管理等核心功能。该项目的 service 层承载了大量复杂业务逻辑,是整个系统的核心模块;但手动为该层代码编写单元测试(UT)需投入大量时间与人力成本,因此银行方期望借助 UT 自动生成工具,一键完成全量单元测试案例的生成,并尽可能提升测试覆盖率。为此,本文选取 UTgen 对目标代码生成 UT 案例,将重点介绍该工具生成案例的代码覆盖率表现。
2. 工具介绍及获取方式
UTgen作为IntelliJ IDEA插件,是一款专为Maven和Gradle项目设计的Java单元测试自动生成工具,详细介绍请参考https://www.hikunpeng.com/document/detail/zh/kunpengdevps/userguide/Plugins_UserGuide/UTgen_0019.html
开发者可以登录鲲鹏DevKit下载中心页面下载UTgen插件包:https://www.hikunpeng.com/zh/developer/devkit/download,即可在本地的IntelliJ IDEA工具里安装即可使用
3. UTgen使用说明
3.1 安装部署
安装部署比较简单,目前从本地导入到IDEA里面或者从插件市场直接搜索安装即可,配置只有两个,点击上面的问号可以查看具体的说明,配置可以统一使用默认。

3.2 单测生成
文件创建
支持src/main/java下面的整个模块的单测创建,在文件夹上面点击右键执行如下:

执行需要的配置使用默认即可

执行方式分完两种,可以只创建单测,也可以在创建完成后实时执行。
方法单测
支持单个方法生成单测,对方法生成UT需要右击菜单两下,Generate->UTgen,如下:


4. UTgen使用效果
在xx项目上,行覆盖率达到64%,方法覆盖率75%,而通义灵码在该项目上,行覆盖率43%,方法覆盖率58%,UTgen的行和方法覆盖率均优于通义灵码
UTgen优势:
1.安装使用比较简单,几乎不需要手动配置,而且支持整个模块的批量创建,易用性较好。相比于灵码只能对单个类或方法生成UT,并需要用户手动创建UT文件。
2.完全使用代码编写的插件,稳定性比较好,多次生成几乎一致。
3.单测代码按照统一模式创建,布局清晰明了,注解信息比较完善,非常方便理解和自定义扩展。
4.生成的代码是完整的代码,不需要人工干预既可运行。相比于灵码经常会有编译不通过问题,优势比较明显。
5.生成的覆盖率从结果看也高于灵码。


