Help us learn about your current experience with the documentation. Take the survey.

Diffblue Cover

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

您可以将 Diffblue Cover 强化学习 AI 工具集成到您的 CI/CD 管道中,为您的 GitLab 项目自动编写和维护 Java 单元测试。 Diffblue Cover Pipeline for GitLab 集成允许您自动执行以下操作:

  • 为您的项目编写基准单元测试套件。
  • 为新代码编写新的单元测试。
  • 更新代码中现有的单元测试。
  • 当不再需要时,移除代码中现有的单元测试。

Cover Pipeline for GitLab Basic MR Process

配置集成

要将 Diffblue Cover 集成到您的管道中:

  1. 查找并配置 Diffblue Cover 集成。
  2. 使用 GitLab 管道编辑器和 Diffblue Cover 管道模板为示例项目配置管道。
  3. 为项目创建完整的基准单元测试套件。

配置 Diffblue Cover

  1. 在左侧边栏,选择 Search or go to 并找到您的项目。

  2. 选择 Settings > Integrations

  3. 找到 Diffblue Cover 并选择 Configure

  4. 完成以下字段:

    • 选中 Active 复选框。

    • 输入您在欢迎邮件或组织中收到的 Diffblue Cover License key。 如有需要,选择 Try Diffblue Cover 链接注册免费试用。

    • 输入您的 GitLab 访问令牌的详细信息(NameSecret),以允许 Diffblue Cover 访问您的项目。 通常,使用具有 Developer 角色以及 apiwrite_repository 范围的 GitLab project access token。 如有必要,您可以使用具有 Developer 角色以及 apiwrite_repository 范围的 group access tokenpersonal access token

      使用权限过高的访问令牌存在安全风险。 如果您使用个人访问令牌,建议创建一个仅限于项目访问的专用用户,以最小化令牌泄露造成的影响。

  5. 选择 Save changes。 您的 Diffblue Cover 集成现在已 Active,可以在您的项目中使用。

配置管道

这里我们将为项目创建一个合并请求管道,该管道将下载最新版本的 Diffblue Cover,构建项目,为项目编写 Java 单元测试,并将更改提交到分支。

  1. 在左侧边栏,选择 Search or go to 并找到您的项目。

  2. Diffblue-Cover.gitlab-ci.yml 模板 的内容复制到您项目的 .gitlab-ci.yml 文件中。

    当将 Diffblue Cover 管道模板与您自己的项目和现有管道文件一起使用时,将 Diffblue 模板内容添加到您的文件中并根据需要进行修改。 有关更多信息,请参阅 Diffblue 文档中的 Cover Pipeline for GitLab

  3. 输入提交消息。

  4. 输入新的 Branch 名称。例如,add-diffblue-cover-pipeline

  5. 选择 Start a new merge request with these changes

  6. 选择 Commit changes

创建基准单元测试套件

  1. New merge request 表单中,输入 Title(例如,“Add Cover pipeline and create baseline unit test suite”)并填写其他字段。
  2. 选择 Create merge request。合并请求管道会运行 Diffblue Cover 来为项目创建基准单元测试套件。
  3. 管道完成后,可以从 Changes 选项卡查看更改。当您满意后,将更新合并到您的仓库中。转到项目仓库中的 src/test 文件夹,查看由 Diffblue Cover 创建的单元测试(以 *DiffblueTest.java 为后缀)。

后续代码更改

当对项目进行后续代码更改时,合并请求管道将运行 Diffblue Cover,但只会更新相关的测试。 然后可以分析生成的差异,以检查新行为、捕获回归,并发现代码中任何计划外的行为变化。

Merge request diff showing code changes with test additions in green and removals in red.

下一步

本主题介绍了 Cover Pipeline for GitLab 的一些关键功能以及如何在管道中使用该集成。 通过管道模板中的 dcover 命令提供的更广泛和更深入的功能可以实现,以进一步扩展您的单元测试能力。 有关更多信息,请参阅 Diffblue 文档中的 Cover Pipeline for GitLab