概述

您可以通过选择单元测试助手视图或 IDE 上下文菜单中的创建测试套件选项轻松创建测试套件。当您选择创建测试套件选项时,UTA 将会:

  1. 分析所选范围内的方法。
  2. 创建测试用例。
  3. 可选:使用 AI 优化 UTA 生成的失败测试。(UTA 可能会创建一定数量的失败测试,这些测试虽然失败了,但仍能提供一些覆盖率。在此步骤中,UTA 能利用 AI 更新失败的测试,使其通过。) 

    要使用此功能:

    此功能依赖于 LLM,生成的信息可能不准确。
  4. 使用跟踪和做出断言功能添加断言,运行创建的测试(详细信息,请参阅跟踪对象变更和创建断言)。
    (info) 如果您使用的是 Eclipse IDE,必须启用 Build Automatically 选项(Project 菜单> Build Automatically)才能添加断言。如果禁用该选项,在测试运行期间不会添加任何断言。

要自定义 UTA 创建的测试用例,可查看测试代码中的值和断言,并根据需要进行更新。此外,还可以使用运行选项重新运行测试以使用 UTA 建议优化测试用例(请参阅使用单元测试助手执行单元测试)。

UTA 需要 2GB RAM 才能进行批量创建。如果需要为大型代码库创建多个测试用例,我们建议将 IDE 配置为使用 4GB RAM。

我们建议您禁用 IntelliJ 设置中的 Synchronize files on frame or editor tab activation 选项。如果启用,UTA 可能偶尔会中止然后重新开始测试创建过程,这可能导致无法生成某个测试,或生成不完整的测试。禁用该选项的步骤:

  1. 前往 IntelliJ IDEA 中的 File> Settings
  2. 选择 Appearance & Behavior> System Settings
  3. 禁用 Synchronize files on frame or editor tab activation 选项。

如果启用了 UTA 首选项中的 为 private 方法创建测试选项,UTA 会为所选类中的私有方法创建测试(请参阅配置首选项)。默认情况下,为 private 方法创建测试选项被禁用,因为行业最佳实践是通过为调用私有方法的可访问方法创建测试来测试私有方法,而不是直接为私有方法创建测试。

可以通过配置 UTA 首选项中的配置测试的超时 (单位: ms) 选项指定测试套件的执行时间限制(请参阅测试创建选项)。

为单个文件创建测试套件

  1. 通过以下方法之一打开单元测试助手 - 创建测试套件对话框:

  2.   配置测试创建选项。

  3. 点击 OK。UTA 将会:
    1. 为文件中所有选定的方法(包括已经有相应测试的方法)创建测试用例。
    2. 运行测试并创建断言。
  4. 如有必要,可检查测试并修改值和断言。

     
  5. 使用 UTA 运行测试以收集覆盖率信息并获取改进建议(请参阅使用单元测试助手执行单元测试)。

为多个文件创建测试套件

UTA 可以一次性为多个文件创建测试用例。您可以为指定的一组文件中所有方法创建测试,也可以根据您选择的比较标准仅为一组文件中已修改的方法创建测试。

您可以在 UTA 首选项中选择此选项,仅添加能够增加覆盖率的测试用例(请参阅测试创建选项)。

  1. 右键点击要为其创建测试用例的文件、包或项目。此外,还可以选择同一个类中的多个方法(选择不同类中的方法,或者同时选择一个方法与一个类或一个包,均无法创建测试用例)。
  2. 点击单元测试> 创建测试套件打开单元测试助手 - 创建测试套件对话框。

  3. 配置测试创建选项。
  4. (可选)将鼠标悬停在许可证使用概要选项上可以显示为所选资源创建测试用例预计所需的令牌数量。测试生成后,概要对话框将显示实际消耗了多少令牌以及剩余多少令牌(请参阅许可)。
  5. 点击 OK。UTA 将会:
    1. 创建测试用例,跳过无法测试或已存在相应测试类的文件。
    2. 运行测试并创建断言。
  6. 使用 UTA 运行测试以收集覆盖率信息和可能的优化建议(请参阅使用单元测试助手执行单元测试)。

为修改后的方法(与本地或远程分支比较)创建测试需要“Unit Test Single Class Creation”许可证功能,在该情况下不会消耗许可证令牌。为全部选择、与指定的提交或分支比较存在修改的方法、自当前分支分叉于指定提交或分支创建测试,需要“Unit Test Bulk Creation Tier”许可证功能之一。这些功能提供了许可证令牌,根据为其生成测试用例的文件数量进行消耗(可用令牌数量视您的许可协议而定)。在这类情况下,UTA 针对每个为其创建测试的 .java 文件消耗一个令牌。

  • UTA 没有为其生成任何测试用例(例如,接口或抽象类)的文件不消耗令牌。
  • 一旦为某个 java 文件消耗过令牌,即使第一次生成的测试被删除,为该 .java 文件重新生成测试也不会额外消耗令牌。

如果批量创建的结果不符合期望,这可能表明项目中存在设置问题。更多信息,请参阅如何诊断潜在设置问题?