正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Diffblue Cover

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

CI/CDパイプラインにDiffblue Cover強化学習AIツールを統合して、GitLabプロジェクトのJava単体テストを自動的に作成および保守できます。Diffblue Coverパイプラインfor GitLabインテグレーションを使用すると、以下を自動的に実行できます:

  • プロジェクトのベースライン単体テストスイートを作成します。
  • 新しいコードの新しい単体テストを作成します。
  • コード内の既存の単体テストを更新します。
  • 不要になったコード内の既存の単体テストを削除します。

Coverパイプラインfor GitLab Basic MR Process

インテグレーションを設定する

GitLabのパイプラインにDiffblue Coverを統合するには、次の手順に従います:

  1. Diffblue Coverインテグレーションを見つけて設定します。
  2. GitLabパイプラインエディタとDiffblue Coverパイプラインテンプレートを使用して、サンプルプロジェクトのパイプラインを設定します。
  3. プロジェクトの完全なベースライン単体テストスイートを作成します。

Diffblue Coverを設定する

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。

    • サンプルプロジェクトで統合をテストする場合は、Diffblue Spring Petclinicサンプルプロジェクトをインポートできます。
  2. 設定 > インテグレーションを選択します。

  3. Diffblue Cover(Diffblue Cover)を見つけて、設定するを選択します。

  4. フィールドに入力します:

    • 有効チェックボックスを選択します。

    • ウェルカムメールまたは組織から提供されたDiffblue Coverのライセンスキーを入力します。必要に応じて、Diffblue Coverを試すリンクを選択して、トライアルにサインアップしてください。

    • Diffblue Coverがプロジェクトにアクセスできるように、GitLabアクセストークン(名前シークレット)の詳細を入力します。通常は、DeveloperロールのGitLab プロジェクトアクセストークンと、apiおよびwrite_repositoryスコープを使用します。必要に応じて、Developerロールのグループアクセストークンまたはパーソナルアクセストークンと、apiおよびwrite_repositoryスコープを再度使用できます。

      過剰な権限を持つアクセストークンを使用すると、セキュリティ上のリスクがあります。PATを使用する場合は、プロジェクトのみにアクセスが制限された専用ユーザーを作成して、トークンがリークした場合の影響を最小限に抑えるすることを検討してください。

  5. 変更を保存を選択します。Diffblue Coverインテグレーションが有効になり、プロジェクトで使用できるようになりました。

パイプラインを設定する

ここでは、Diffblue Coverの最新バージョンをダウンロードし、プロジェクトをビルドし、プロジェクトのJava単体テストを作成し、変更をブランチにコミットする、プロジェクトのマージリクエストパイプラインを作成します。

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。

  2. Diffblue-Cover.gitlab-ci.ymlテンプレートの内容をプロジェクトの.gitlab-ci.ymlファイルにコピーします。

    Diffblue Coverパイプラインテンプレートを独自のプロジェクトおよび既存のパイプラインファイルで使用する場合は、Diffblueテンプレートのコンテンツをファイルに追加し、必要に応じて変更します。詳細については、DiffblueドキュメントのCoverパイプラインfor GitLabを参照してください。

  3. コミットメッセージを入力します。

  4. 新しいブランチ名を入力します。たとえばadd-diffblue-cover-pipelineなどです。

  5. Start a new merge request with these changes(これらの変更で新しいマージリクエストを開始)を選択します。

  6. 変更をコミットするを選択します。

ベースライン単体テストスイートを作成する

  1. 新しいマージリクエストフォームで、タイトル(例: 「Coverパイプラインを追加してベースラインの単体テストスイートを作成」)を入力し、他のフィールドに入力します。
  2. マージリクエストを作成を選択します。マージリクエストパイプラインはDiffblue Coverを実行して、プロジェクトのベースライン単体テストスイートを作成します。
  3. パイプラインが完了すると、変更タブから変更をレビューできます。問題がなければ、更新をリポジトリにマージします。プロジェクトリポジトリのsrc/testフォルダーに移動して、Diffblue Coverによって作成された単体テスト(*DiffblueTest.javaというサフィックスが付いています)を確認します。

後続のコード変更

プロジェクトに対して後続のコード変更を実行すると、マージリクエストパイプラインはDiffblue Coverを実行しますが、関連付けられたテストのみを更新します。結果として得られる差分を分析して、新しい動作をチェックし、リグレッションをキャッチし、コードに対する計画外の動作変更を見つけることができます。

緑色でテストが追加され、赤色で削除されたコード変更を示すマージリクエストの差分。

次の手順

このトピックでは、Coverパイプラインfor GitLabの主要な機能の一部と、パイプラインでインテグレーションを使用する方法について説明します。パイプラインテンプレートでdcoverコマンドを介して提供される、より広くより深い機能は、単体テスト機能をさらに展開するために実装できます。詳細については、DiffblueドキュメントのCoverパイプラインfor GitLabを参照してください。