---
title: UTgen工具
description: "UTgen是一款专为Maven和Gradle项目设计的Java单元测试自动生成工具，作为IntelliJ IDEA的插件，它能够为开发者提供端到端的测试用例生成支持，真正做到即插即用。具有以下关键特性："
url: https://www.hikunpeng.com/document/detail/zh/nativedevp/twp/Kunpeng_Development_0080.html
sourcePath: /source/zh/nativedevp/twp/Kunpeng_Development_0080.html
indexId: cb42815e47ad8f5b622c38d0b27cc78b26e05edf0d56432c04e58564c6dc0cb855
---
# UTgen工具

#### 功能简介

UTgen是一款专为Maven和Gradle项目设计的Java单元测试自动生成工具，作为IntelliJ IDEA的插件，它能够为开发者提供端到端的测试用例生成支持，真正做到即插即用。具有以下关键特性：

- 支持通过右击方法名、类名、类文件、包目录生成测试用例。
- 测试用例包含输入、方法体、断言和注释。
- 在生成的过程中，保证最大的分支覆盖率和最小的测试数量。
- 支持指定生成测试用例的根目录和测试框架（JUnit 4、JUnit 5）。
- 支持两种用例渲染策略（保留和覆盖）。
- 支持Mock和设置测试生成超时时间。
- 支持JDK8、11、17的项目。
- 支持基于Spring Boot 2.x的Java项目。


#### 操作步骤

UTgen工具支持通过Java包、文件、函数的形式生成UT测试用例。

1. 在IntelliJ工具中展开项目文件夹，鼠标右击Java包或文件，选择“Generate Tests with UTgen”选项；或者打开文件，选择需要生成UT测试用例的函数，右击选择“生成”选项，在打开的选项中选择“Tests with UTgen”选项。
  图1 基于普通项目

  图2 基于Spring Boot项目

2. 在打开的对话框中，设置自动生成UT参数，参数说明如表1所示。
**表1 UT测试用例参数说明**

| 参数 | 说明 |
| --- | --- |
| 测试根目录（Test sources root） | 表示生成的UT测试用例代码文件存放的目录。 |
| 测试框架（Testing framework） | 可选择基于某个测试框架生成UT。 JUnit 4 JUnit 5 |
| 相同函数的UT生成（UT generation for same function） | 对同一函数增加UT时，会覆盖或者保留原有工具生成UT（带@UTgen注解）。 Overwrite Retain |
| Mock策略（Mocking strategy） | 表示是否要Mock内部对象，不Mock，或者工具自动选择是否Mock，或者Mock除目标类和系统类之外的所有内容。 Do not mock Auto mock Mock outside the class 说明： Mock static methods：模拟静态方法 Parameterized tests：参数化测试 选择“Auto mock”或“Mock outside the class”可以勾选“Mock static methods”选项；选择“Do not mock”可以勾选“Parameterized tests”选项。 |
| 生成测试超时时间（Test generation timeout） | 表示针对每个class生成UT的超时时间，默认为60s。 |
| 被测试对象（Generate tests for） | 列举被测试函数或者类。 在列表中可勾选或不勾选当前Java包/文件中的需要被测试的函数或者类。 |


  若为Spring Boot项目，会在原基础上新增如下三个参数，参数说明如表2所示。

**表2 UT测试用例参数说明**

| 参数 | 说明 |
| --- | --- |
| Spring配置（Spring configuration） | 进行Spring配置，可选择不配置，或选择Spring配置类。 No configuration：将Spring Boot项目不做特殊处理。 @Configuration：Spring配置类，分析该注解所在类中的Bean定义，用于确定生成测试用例时的类型约束，即生成的测试用例使用该Bean的类型。具体使用示例请参见Spring Boot项目示例(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/development/utgen/UTgen\_0018.html)。 @SpringBootApplication：Spring配置类，分析Spring Boot项目中所有注入的Bean定义，用于确定生成测试用例时的类型约束，即生成的测试用例使用该Bean的类型。 |
| 测试类型（Test type） | 设置测试类型，只提供Unit tests测试类型。 |
| 激活状态的Profile名称（Active profiles） | Profile是一种用于根据不同环境或条件来配置和激活不同Bean定义、配置属性等的机制。与Spring配置类一起分析注入的Bean定义，用于确定生成测试用例时的类型约束，即生成的测试用例使用该Bean的类型。 |


3. 参数配置完成后，单击“Generate Tests”生成UT测试用例，或者单击“Generate and Run”生成并运行UT测试用例，生成时右下角会有进度条显示。
  图3 生成用例

  图4 进度条显示

  UT用例生成过程中，不能再进行UT测试用例生成的操作。

4. UT测试用例生成后，右下角会有生成成功提示，同时会在项目文件夹指定的目录下（测试根目录参数所指定的目录）生成一个对应的UT目录，目录下生成的UT测试用例路径和项目文件夹下的路径一一对应。
  图5 成功提示

  图6 生成测试用例文件夹
