mutation-testing について
プロジェクトで PIT によるミューテーションテストを設定・実行し、結果を報告して記録するスキルです。ビルド設定、変異の除外、テスト実行、プロジェクト固有の設定記録を扱います。
主な機能
- 01既存の PIT 設定を確認
- 02ビルドに PIT を設定
- 03変異の除外設定を調整
- 04PIT を実行してスコアを報告
- 05実行設定を記録
活用シーン
- 01プロジェクトのビルドに PIT を追加
- 02変異の除外や targetClasses を変更
- 03変異テストを実行してスコアを報告
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ amplicode/ spring-skills --skill mutation-testingインストール後、Claude Code で/mutation-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/add-exclusion.mdconfiguration.mdexclusions.mdjunit6.mdreport.mdusage.mdscripts/summarize_mutations.py詳細
ミューテーションテスト
手順
まず、このスキルにある、このプロジェクト用(type: project)の pitest エントリーを読みます。以下のチェックはこれを基にしています。エントリーがなくても問題ありません。まだ何も記録されていないという意味です。
次に、各手順に付随するチェックを確認しながら、順番に進めます。チェックに該当した時点でその手順は完了しているため、スキップして次に進みます。その手順を実際に実行する場合にのみ、参照ファイルを読み込みます。これにより、PIT の出力を確認するためのコンテキストを残せます。
1. ビルドで PIT を設定する
次の場合はスキップします。 PIT がすでに設定されている場合です。判断の手掛かりは 2 つあります。最初に該当した時点で終了します。
-
エントリーがある場合 — このプロジェクト用の設定について説明されています。それだけで十分です。手順をスキップし、エントリーに書かれている内容を確認するためだけのコマンドを実行しないでください。
-
エントリーがない場合 — ビルドファイルを確認します。
grep -n "info.solidsoft.pitest" build.gradle build.gradle.kts 2>/dev/null
それ以外の場合は、セットアップの一環として除外設定を適用する references/configuration.md に従います。
手順 3 で Task 'pitest' not found が発生した場合、エントリーは古くなっています。その旨を伝え、この手順を実行してから先に進みます。
2. ミューテーションの対象を調整する
次の場合はスキップします。 除外設定または targetClasses に関係のない依頼の場合です。
それ以外の場合は、references/add-exclusion.md に従います。これは質問への回答と変更の適用を兼ねています。依頼が質問のみの場合は、候補を判断した時点で終了し、ビルドには手を加えません。
3. PIT を実行してスコアを報告する
次の場合はスキップします。 PIT をビルドに組み込むことだけを依頼された場合、または除外対象についてのアドバイスだけを求められた場合です。その場合は、実行できることを伝えて終了します。
それ以外の場合は、references/usage.md に従います。
4. 解決した内容を記録する
次の場合はスキップします。 エントリーに、実行時に実際に使用した内容がすでに記載されている場合です。
それ以外の場合は、references/configuration.md の手順 5 で定義されている形式で pitest を新規作成するか、更新します。これにより次回は手順 1 をスキップできます。したがって、これは省略できない記録作業です。記録を省くと、次回の実行でバージョンの確認や互換性チェックを最初からやり直すことになります。