configure-tests について
JavaScript、Python、Rustプロジェクトのテストフレームワークを確認・設定するスキルです。既存構成を検出して不足を報告し、依頼に応じて設定変更も行います。
主な機能
- 01Vitest・Jest・pytest・nextestの検出
- 02フレームワークとカバレッジ設定の確認
- 03テスト構成とスクリプトの確認
- 04設定修正と移行の支援
- 05CIのテスト連携確認
活用シーン
- 01プロジェクトのテスト基盤を設定
- 02フレームワーク設定の不足を確認
- 03モダンなテストフレームワークへ移行
- 04CIワークフローにテストコマンドを追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-testsインストール後、Claude Code で/configure-testsを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
/configure:tests
ベストプラクティスに照らして、テストフレームワーク(Vitest、Jest、pytest、cargo-nextest)を確認し、設定します。
このスキルを使用するタイミング
| 次の場合にこのスキルを使用します | 次の場合は別の方法を使用します |
|---|---|
| テストインフラストラクチャをセットアップする場合 | テストを実行するだけの場合(/test:run スキルを使用) |
| テストフレームワークの設定を確認する場合 | テストがすでに適切に設定されている場合 |
| 最新のテストフレームワーク(Vitest、pytest、nextest)に移行する場合 | 個別のテストを作成する場合(テストを直接記述) |
| カバレッジ設定を検証する場合 | 失敗するテストをデバッグする場合(テスト出力を確認) |
| テストのベストプラクティスを徹底する場合 | テストが不要なシンプルなプロジェクトの場合 |
コンテキスト
- Package.json: !
find . -maxdepth 1 -name \'package.json\' - Pyproject.toml: !
find . -maxdepth 1 -name \'pyproject.toml\' - Cargo.toml: !
find . -maxdepth 1 -name \'Cargo.toml\' - テスト設定ファイル: !
find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' -o -name '.nextest.toml' \) - pyproject 内の pytest: !
find . -maxdepth 1 -name 'pyproject.toml' -exec grep -c 'tool.pytest' {} + - テストディレクトリ: !
find . -maxdepth 2 -type d \( -name 'tests' -o -name '__tests__' -o -name 'test' \) - package.json 内のテストスクリプト: !
find . -maxdepth 1 -name 'package.json' -exec grep -m5 -o '"test[^"]*"' {} + - カバレッジ設定: !
find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' \) -exec grep -l 'coverage' {} + - プロジェクト標準: !
find . -maxdepth 1 -name '.project-standards.yaml' -type f
最新のテストスタックに関する推奨事項:
- JavaScript/TypeScript:Vitest(推奨)または Jest
- Python:pytest と pytest-cov
- Rust:パフォーマンス向上のため cargo-nextest
パラメーター
$ARGUMENTS から次の項目を解析します:
| フラグ | 説明 |
|---|---|
--check-only | 修正を提案せず、ステータスを報告します |
--fix | 確認を求めず、すべての修正を自動的に適用します |
--framework <framework> | フレームワークの検出を上書きします(vitest、jest、pytest、nextest) |
バージョンの確認
重要:古いバージョンとして指摘する前に、最新リリースを確認してください:
- Vitest:vitest.dev または GitHub releases を確認します
- Jest:jestjs.io または npm を確認します
- pytest:pytest.org または PyPI を確認します
- cargo-nextest:nexte.st または GitHub releases を確認します
古いフレームワークを報告する前に、WebSearch または WebFetch を使用して現行バージョンを確認してください。
実行
このテストフレームワークの準拠状況チェックを実行します:
ステップ 1:フレームワークの検出
プロジェクトの言語と既存のテストフレームワークを特定します:
| 指標 | 言語 | 検出されたフレームワーク |
|---|---|---|
vitest.config.* | JavaScript/TypeScript | Vitest |
jest.config.* | JavaScript/TypeScript | Jest |
pyproject.toml [tool.pytest] | Python | pytest |
pytest.ini | Python | pytest |
Cargo.toml | Rust | cargo test |
.nextest.toml | Rust | cargo-nextest |
--framework フラグが指定されている場合は、その値を使用します。
ステップ 2:現状を分析する
検出されたフレームワークの設定を読み込み、完全性を確認します。各フレームワークについて、次の項目を検証してください。
Vitest:
- 設定ファイルが存在する(
vitest.config.tsまたは.js) - 互換性のために
globals: trueが設定されている environmentが適切に設定されている(jsdom、happy-dom、node)@vitest/coverage-v8または@vitest/coverage-istanbulを使ったカバレッジが設定されている- ウォッチモードの除外設定がある
Jest:
- 設定ファイルが存在する(
jest.config.jsまたは.ts) testEnvironmentが設定されている- カバレッジ設定がある
- TypeScript/JSX 用の変換が設定されている
- モジュールパスのエイリアスが設定されている
pytest:
pyproject.tomlに[tool.pytest.ini_options]セクションがあるtestpathsが設定されているaddoptsに有用なフラグ(-v、--strict-markers)が含まれている- テストの分類用に
markersが定義されている pytest-covがインストールされている
cargo-nextest:
.nextest.tomlが存在する- プロファイル設定(default、ci)がある
- 再試行ポリシーが設定されている
- 必要に応じてテストグループが定義されている
ステップ 3:結果を報告する
次の項目を含む適合レポートを出力します。
- 検出されたフレームワークとバージョン
- 各項目の設定チェック結果
- テストの構成(unit/integration/e2e ディレクトリ)
- パッケージスクリプトの状態(test、test:watch、test:coverage)
- 問題の合計数と推奨事項
--check-only が指定されている場合は、ここで終了します。
ステップ 4:修正を適用する(--fix が指定された場合、またはユーザーが確認した場合)
REFERENCE.md のテンプレートを使って、依存関係をインストールし、設定を作成します。
- 設定の欠落:テンプレートからフレームワークの設定ファイルを作成する
- 依存関係の欠落:必要なパッケージをインストールする
- カバレッジの欠落:80% のしきい値を設定したカバレッジ設定を追加する
- スクリプトの欠落:package.json にテストスクリプトを追加する
- テストディレクトリの欠落:標準的なテストディレクトリ構成を作成する
ステップ 5:テストの構成を設定する
検出された言語に対応する標準的なテストディレクトリ構成を作成します。REFERENCE.md のディレクトリ構成パターンを参照してください。
ステップ 6:CI/CD 統合を設定する
GitHub Actions ワークフローにテストコマンドがあるか確認します。ない場合は、REFERENCE.md の CI テンプレートを使って CI テストコマンドを追加します。
ステップ 7:移行を処理する(アップグレードする場合)
フレームワーク間で移行する場合(例:Jest から Vitest、unittest から pytest)、REFERENCE.md の移行ガイドに従ってください。
ステップ 8:標準の追跡情報を更新する
.project-standards.yaml を更新します。
standards_version: "2025.1"
last_configured: "<timestamp>"
components:
tests: "2025.1"
tests_framework: "<vitest|jest|pytest|nextest>"
tests_coverage_threshold: 80
tests_ci_integrated: true
詳しい設定テンプレート、移行ガイド、CI/CD 統合例、ディレクトリ構成パターンについては、REFERENCE.md を参照してください。
エージェント向けの最適化
| コンテキスト | コマンド |
|---|---|
| テストフレームワークを検出する | find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' \) 2>/dev/null |
| カバレッジ設定を確認する | grep -l 'coverage' package.json pyproject.toml 2>/dev/null |
| テストファイルを一覧表示する | find . \( -path '*/tests/*' -o -path '*/test/*' -o -name '*.test.*' -o -name '*.spec.*' \) 2>/dev/null | head -n 10 |
| 適合状況を簡易チェックする | /configure:tests --check-only |
| 設定を自動修正する | /configure:tests --fix |
エラー処理
- package.json が見つからない:JS/TS のテストは設定できません。スキップするか、エラーにします
- フレームワークの競合:複数のテスト設定があることを警告し、手動での解決を求めます
- 依存関係の欠落:必要なパッケージのインストールを提案します
- 設定構文が無効:解析エラーを報告し、テンプレートへの置き換えを提案します
関連項目
/configure:coverage- カバレッジのしきい値とレポートを設定する/configure:all- すべての適合チェックを実行する/test:run- 汎用テストランナー/test:setup- 包括的なテスト基盤をセットアップする- Vitest のドキュメント:https://vitest.dev
- pytest のドキュメント:https://docs.pytest.org
- cargo-nextest のドキュメント:https://nexte.st