mcpField
L
ln-743-test-infrastructure

ln-743-test-infrastructure

github.com/levnikolaevichテスト・品質584378 回インストール2 日前に更新
リポジトリ

ln-743-test-infrastructure について

TypeScript/React、.NET、Python プロジェクトのテスト基盤を設定するスキルです。技術スタックに応じてフレームワークを選び、カバレッジ設定とサンプルテストを用意して実行を検証します。

主な機能

  1. 01技術スタックと既存テストの検出
  2. 02Vitest、xUnit、pytest の設定
  3. 03カバレッジツールとしきい値の設定
  4. 04テスト構成とサンプルテストの作成
  5. 05テストとカバレッジ実行の検証

活用シーン

  1. 01テスト設定のないプロジェクトへの基盤追加
  2. 02カバレッジレポートとテスト例の整備

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-743-test-infrastructure

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
testing_guide.md
references/scripts/
conftest_template.py
pytest_test_template.py
references/templates/
pytest_config_template.toml
react_test_template.tsx
vitest_setup_template.ts
vitest_template.ts
xunit_csproj_template.xml
xunit_test_template.cs

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリを基準としています。

ln-743-test-infrastructure

タイプ: L3 ワーカー カテゴリー: 7XX プロジェクトのブートストラップ

プロジェクト向けに、テストフレームワーク、カバレッジツール、サンプルテストをセットアップします。


目的と範囲

実行すること:

  • プロジェクトのスタックを検出し、適切なテストフレームワークを選択します
  • テスト設定ファイルを作成します
  • しきい値を設定してカバレッジレポートをセットアップします
  • パターンを示すサンプルテストを作成します
  • テストスイートが正常に実行されることを確認します

実行しないこと:

  • リンターの設定(これは ln-741 が行います)
  • pre-commit フックのセットアップ(これは ln-742 が行います)
  • 実際のアプリケーションのテスト作成(これは開発者が行います)

サポート対象のスタック

テクノロジーテストフレームワークカバレッジツール設定ファイル
TypeScript/ReactVitestv8/Istanbulvitest.config.ts
.NETxUnitCoverlet*.Tests.csproj
Pythonpytestpytest-covpytest.ini または pyproject.toml

フェーズ 1:既存のテストを確認する

テストインフラストラクチャを作成する前に、既存のものを確認します。

確認するファイル:

スタックテストの目印
TypeScriptvitest.config.*、jest.config.*、*.test.ts、*.spec.ts
.NET*.Tests.csproj、*.IntegrationTests.csproj
Pythonpytest.ini、conftest.py、tests/、test_*.py

判断ロジック:

  1. テストのセットアップがすでに完了している場合:スキップ(ユーザーに伝えます)
  2. セットアップが一部完了している場合:拡張するか置き換えるかを確認します
  3. テストがない場合:テンプレートから作成します

フェーズ 2:テスト設定を作成する

TypeScript/React(Vitest)

vitest.config.ts を作成します:

  • v8 カバレッジプロバイダーを使用します(Istanbul より高速です)
  • React 用に jsdom 環境を設定します
  • カバレッジのしきい値を設定します(最低 80%)
  • testing-library 用のセットアップファイルを作成します

依存関係:

npm install -D vitest @vitest/coverage-v8 @testing-library/react @testing-library/jest-dom jsdom
.NET(xUnit)

テストプロジェクトを作成します:

dotnet new xunit -n {Project}.Tests
dotnet sln add tests/{Project}.Tests

依存関係(.csproj 内):

  • Microsoft.NET.Test.Sdk
  • xunit
  • xunit.runner.visualstudio
  • Moq
  • FluentAssertions
  • coverlet.collector
Python(pytest)

pyproject.toml に追加するか、pytest.ini を作成します:

  • テスト検出パスを設定します
  • カバレッジのしきい値を設定します(最低 80%)
  • カバレッジレポートを設定します

依存関係:

pip install pytest pytest-cov pytest-asyncio
# OR with uv:
uv add --dev pytest pytest-cov pytest-asyncio

フェーズ 3:テストディレクトリ構造を作成する

TypeScript
src/
├── components/
│   ├── Button.tsx
│   └── Button.test.tsx  # Co-located tests
├── test/
│   └── setup.ts         # Test setup file
.NET
tests/
├── {Project}.Tests/
│   ├── Controllers/
│   │   └── SampleControllerTests.cs
│   ├── Services/
│   └── {Project}.Tests.csproj
└── {Project}.IntegrationTests/  # Optional
Python
tests/
├── conftest.py          # Shared fixtures (from conftest_template.py)
├── unit/
│   └── test_sample.py
└── integration/         # Optional

FastAPI/非同期プロジェクトの場合は、共有の非同期 HTTP クライアントフィクスチャを含む conftest.py を conftest_template.py から生成します。プロジェクトに合わせてアプリのインポートパスを調整してください。


フェーズ 4:サンプルテストを作成する

各スタックにつき 1 つ、以下を示すサンプルテストを作成します:

  • AAA パターン(Arrange-Act-Assert)
  • テストの命名規則
  • 基本的なアサーション
  • フレームワーク固有のパターン
TypeScript のサンプルテスト

以下を示します:

  • testing-library の render()
  • screen クエリ
  • Jest-dom マッチャー
.NET のサンプルテスト

以下を示します:

  • [Fact] 属性
  • モック作成に使う Moq
  • FluentAssertions の構文
Python のサンプルテスト

以下を示します:

  • pytest フィクスチャ
  • assert 文
  • パラメーター化テスト(任意)

フェーズ 5:テストの実行を確認する

セットアップ後、テストが動作することを確認します。

TypeScript:

npm test
npm run test:coverage

想定結果:サンプルテストが成功し、カバレッジレポートが生成されます

.NET:

dotnet test
dotnet test --collect:"XPlat Code Coverage"

想定結果:サンプルテストが成功し、カバレッジが収集されます

Python:

pytest
pytest --cov=src --cov-report=term-missing

想定結果:サンプルテストが成功し、カバレッジレポートが表示されます

失敗した場合: テスト設定と依存関係を確認し、サンプルテストの構文を検証してください。


カバレッジ要件

指標最低値目標値
行70%80%
分岐70%80%
関数70%80%
ステートメント70%80%

カバレッジがしきい値を下回った場合に CI が失敗するよう設定してください。


重要なルール

RULE 1: カバレッジのしきい値を必ず設定してください。例外はありません。

RULE 2: サンプルテストは必ず合格するようにしてください。壊れたサンプルを作成しないでください。

RULE 3: すべてのサンプルテストで AAA パターン(Arrange-Act-Assert)を使用してください。

RULE 4: ユニットテストはソースコードと同じ場所に配置する(TypeScript)か、tests/ ディレクトリを使用してください(.NET、Python)。


Monitor(2.1.98+): スキャフォールド後のテスト検証に 30 秒以上かかると予想される場合は、Monitor を使用してください。代替手段:Bash(run_in_background=true)。

完了の定義

  • テストフレームワークがインストールされ、設定されている
  • カバレッジツールが 80% のしきい値で設定されている
  • テストディレクトリ構造が作成されている
  • サンプルテストが作成され、合格している
  • npm test / dotnet test / pytest が正常に実行される
  • カバレッジレポートが生成される
  • 以下の内容をユーザーに伝えている:
    • テストの実行方法
    • 新しいテストの追加場所
    • カバレッジ要件

参考ファイル

ファイル目的
vitest_template.tsVitest 設定テンプレート
vitest_setup_template.tsテストセットアップファイル
react_test_template.tsxReact コンポーネントのテスト
xunit_csproj_template.xml.NET テストプロジェクト
xunit_test_template.csxUnit テストの例
pytest_config_template.tomlpytest 設定
pytest_test_template.pypytest テストの例
conftest_template.py共有非同期フィクスチャ(FastAPI)
testing_guide.mdテストのベストプラクティス

エラー処理

エラー原因解決方法
Vitest が見つからないインストールされていないnpm install -D vitest
jsdom エラー依存関係が不足しているnpm install -D jsdom
xUnit の検出に失敗するSDK バージョンの不一致Microsoft.NET.Test.Sdk を更新する
pytest が見つからないPATH に含まれていないpip install pytest
カバレッジが 0%ソースパスが誤っているcoverage.include の設定を確認する

バージョン: 3.0.0 最終更新日: 2026-03-18

コメント