circleci-smarter-testing について
前提チェックに合格した testsuite に CircleCI Smarter Testing の機能を設定するスキルです。必要な機能だけを有効にし、CircleCI CLI の doctor コマンドで設定を検証します。
主な機能
- 01testsuite の前提条件チェック
- 02テスト影響分析の有効化
- 03並列ノードへのテスト分割
- 04失敗したテストの自動再試行
- 05doctor による設定検証
活用シーン
- 01変更の影響を受けるテストだけを実行
- 02テストを並列 CI ノードに分配
- 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 を再実行して確認してください。
ユーザーが希望する機能ごとに、次の手順を実行します。
- doctor の
next_stepsにあるoptions:スニペットを適用します(test-impact-analysis: true、dynamic-test-splitting: true、max-auto-rerun: <0-10>)。 - doctor を再実行し、指摘された問題を修正します(例:アトムがファイルではない場合は
file-mapperが不足している、テスト分割の場合はジョブのparallelismが不足しているなど)。問題がなくなるまで繰り返します。 - 特にテスト影響分析の場合は、問題がなくなったら初期データを一度だけシードします。これはセットアップ中に
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 の出力、前提条件のうち満たされなかったものを報告してください。