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 集成允许您自动执行以下操作:
- 为您的项目编写基准单元测试套件。
- 为新代码编写新的单元测试。
- 更新代码中现有的单元测试。
- 当不再需要时,移除代码中现有的单元测试。
配置集成
要将 Diffblue Cover 集成到您的管道中:
- 查找并配置 Diffblue Cover 集成。
- 使用 GitLab 管道编辑器和 Diffblue Cover 管道模板为示例项目配置管道。
- 为项目创建完整的基准单元测试套件。
配置 Diffblue Cover
-
在左侧边栏,选择 Search or go to 并找到您的项目。
- 如果您想使用示例项目测试集成,您可以 import Diffblue 的 Spring PetClinic 示例项目。
-
选择 Settings > Integrations。
-
找到 Diffblue Cover 并选择 Configure。
-
完成以下字段:
-
选中 Active 复选框。
-
输入您在欢迎邮件或组织中收到的 Diffblue Cover License key。 如有需要,选择 Try Diffblue Cover 链接注册免费试用。
-
输入您的 GitLab 访问令牌的详细信息(Name 和 Secret),以允许 Diffblue Cover 访问您的项目。 通常,使用具有
Developer角色以及api和write_repository范围的 GitLab project access token。 如有必要,您可以使用具有Developer角色以及api和write_repository范围的 group access token 或 personal access token。使用权限过高的访问令牌存在安全风险。 如果您使用个人访问令牌,建议创建一个仅限于项目访问的专用用户,以最小化令牌泄露造成的影响。
-
-
选择 Save changes。 您的 Diffblue Cover 集成现在已 Active,可以在您的项目中使用。
配置管道
这里我们将为项目创建一个合并请求管道,该管道将下载最新版本的 Diffblue Cover,构建项目,为项目编写 Java 单元测试,并将更改提交到分支。
-
在左侧边栏,选择 Search or go to 并找到您的项目。
-
将
Diffblue-Cover.gitlab-ci.yml模板 的内容复制到您项目的.gitlab-ci.yml文件中。当将 Diffblue Cover 管道模板与您自己的项目和现有管道文件一起使用时,将 Diffblue 模板内容添加到您的文件中并根据需要进行修改。 有关更多信息,请参阅 Diffblue 文档中的 Cover Pipeline for GitLab。
-
输入提交消息。
-
输入新的 Branch 名称。例如,
add-diffblue-cover-pipeline。 -
选择 Start a new merge request with these changes。
-
选择 Commit changes。
创建基准单元测试套件
- 在 New merge request 表单中,输入 Title(例如,“Add Cover pipeline and create baseline unit test suite”)并填写其他字段。
- 选择 Create merge request。合并请求管道会运行 Diffblue Cover 来为项目创建基准单元测试套件。
- 管道完成后,可以从 Changes 选项卡查看更改。当您满意后,将更新合并到您的仓库中。转到项目仓库中的
src/test文件夹,查看由 Diffblue Cover 创建的单元测试(以*DiffblueTest.java为后缀)。
后续代码更改
当对项目进行后续代码更改时,合并请求管道将运行 Diffblue Cover,但只会更新相关的测试。 然后可以分析生成的差异,以检查新行为、捕获回归,并发现代码中任何计划外的行为变化。
下一步
本主题介绍了 Cover Pipeline for GitLab 的一些关键功能以及如何在管道中使用该集成。
通过管道模板中的 dcover 命令提供的更广泛和更深入的功能可以实现,以进一步扩展您的单元测试能力。
有关更多信息,请参阅 Diffblue 文档中的 Cover Pipeline for GitLab。