mcpField
C
circleci-smarter-testing

circleci-smarter-testing

github.com/circleci-publicテスト・品質748 回インストール1 週間前に更新
リポジトリ

circleci-smarter-testing について

前提チェックに合格した testsuite に CircleCI Smarter Testing の機能を設定するスキルです。必要な機能だけを有効にし、CircleCI CLI の doctor コマンドで設定を検証します。

主な機能

  1. 01testsuite の前提条件チェック
  2. 02テスト影響分析の有効化
  3. 03並列ノードへのテスト分割
  4. 04失敗したテストの自動再試行
  5. 05doctor による設定検証

活用シーン

  1. 01変更の影響を受けるテストだけを実行
  2. 02テストを並列 CI ノードに分配
  3. 03同じステップ内で失敗テストを再試行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/circleci-public/skills --skill circleci-smarter-testing

インストール後、Claude Code で/circleci-smarter-testingを入力して読み込まれたか確認します。

詳細

CircleCI のスマートテスト

これらの機能を利用するには、有料プランが必要な場合やベータ版の場合があります。ユーザーに利用可能状況や料金を案内する前に、最新情報を確認してください。

testsuite を基盤として構築されています。ユーザーにどの機能を利用したいか尋ねてください(3 つすべてを利用するとは限りません)。

  • テスト影響分析 — 変更の影響を受けるテストだけを実行します。
  • 動的テスト分割 — テストを並列ノードに均等に分配します。
  • 失敗したテストの自動再実行 — 同じステップ内で失敗したテストを自動的に再試行します。

次のコマンドから始めます。

circleci testsuite doctor "<suite name>" --json

.circleci/test-suites.yml が存在しない場合、または checks がすべて合格しない場合は、作業を中止して、まず circleci-testsuite を利用するようユーザーに案内してください。doctor で問題のないスイートでない限り、これらのオプションを有効にしてはいけません。

ユーザーが有効にする機能とあわせて、まだ設定されていなければ options: store-test-results: true も設定してください。これは別途推奨される設定であり、一部の機能では動作に必須です。従来の store_test_results ジョブステップを置き換えます。doctor を再実行して確認してください。

ユーザーが希望する機能ごとに、次の手順を実行します。

  1. doctor の next_steps にある options: スニペットを適用します(test-impact-analysis: true、dynamic-test-splitting: true、max-auto-rerun: <0-10>)。
  2. doctor を再実行し、指摘された問題を修正します(例:アトムがファイルではない場合は file-mapper が不足している、テスト分割の場合はジョブの parallelism が不足しているなど)。問題がなくなるまで繰り返します。
  3. 特にテスト影響分析の場合は、問題がなくなったら初期データを一度だけシードします。これはセットアップ中に testsuite run を使用できる、正当な唯一の例外です。
    circleci testsuite run "<suite name>" --analyze-tests=impacted
    

テスト影響分析を有効にしてシードした後は、日常的に使っているローカルのテストコマンド(npm test、pytest、go test など)を、circleci testsuite run "<suite name>" --local に置き換えるようユーザーに勧めてください。ローカルに保存された影響データを使用するため、CI と同様に、未コミットの変更の影響を受けるテストだけがローカル実行で選択されます。

ガードレール

  • ユーザーが実際に希望した機能だけを有効にしてください。テスト影響分析、動的テスト分割、自動再実行を推測で有効にしてはいけません。
  • セットアップ中にテストを実行するコマンドは circleci testsuite doctor "<suite name>" だけです。ただし、一度だけ実行するシード手順と、上記の --local による開発ループの推奨は例外です。
  • test-suites.yml にシークレットを含めてはいけません。コンテキストや環境変数を使用してください。ローカルの影響データを .circleci/ にコミットしないでください。
  • CLI のインストールや認証に関する問題は circleci-cli に引き継ぎ、それ以外の設定、キャッシュ、ワークスペースに関する作業は circleci-config に引き継いでください。doctor で問題のない設定で CI が失敗した場合は circleci-builds に引き継いでください。

出力要件

セットアップ中に作成された不要なファイルを削除してください。有効にした機能、変更したファイル、最終的な doctor の出力、前提条件のうち満たされなかったものを報告してください。

コメント