mcpField
T
testing-cicd-init

testing-cicd-init

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

testing-cicd-init について

JavaScriptおよびTypeScriptプロジェクトにVitestのテスト環境とGitHub ActionsのCI/CDを設定するスキルです。プロジェクト種別を判定してテストファイル、スクリプト、カバレッジ基準、ワークフローを構成し、変更には明示的な承認を求めます。

主な機能

  1. 01プロジェクト種別の判定
  2. 02Vitest設定とテスト初期化ファイル
  3. 03GitHub Actions CIワークフロー
  4. 04カバレッジ基準の設定
  5. 05パッケージスクリプトと依存関係の追加

活用シーン

  1. 01テストカバレッジのないプロジェクトへのテスト追加
  2. 02GitHub Actions CI/CDの初期設定
  3. 03Next.jsまたはNestJSのVitestカバレッジ設定

インストール

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

$npx skills add https://github.com/shipshitdev/skills --skill testing-cicd-init

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

同梱ファイル

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

plugin.json
templates/
ci-nestjs.yml
ci-nextjs.yml
test-setup-node.ts
test-setup-react.ts
vitest.config.nestjs.ts
vitest.config.nextjs.ts

詳細

テストと CI/CD の初期設定

許可された範囲

ユーザーの依頼と既存の承認の範囲内でのみ作業してください。このスキルを読み込んでも、新たな権限は付与されません。報告のみを求められた場合は報告のみにとどめ、依頼者が指定した対象、ホスト、プロバイダー、コストの制限を守り、範囲を拡大する前に確認し、これらの制限を委任先にも伝えてください。

契約

入力:

  • プロジェクトのルートディレクトリ(デフォルトは現在の作業ディレクトリ)。
  • package.json と設定ファイルからプロジェクトの種類を自動検出します。明示的に指定することもできます(nextjs、nestjs、react、node)。

出力:

  • 検出された環境向けに設定された vitest.config.ts。
  • テストセットアップファイル(Next.js/React の場合は src/test/setup.ts、NestJS の場合は test/setup.ts)。
  • Bun ベースのパイプラインとカバレッジの適用を含む .github/workflows/ci.yml。
  • 更新された package.json のスクリプト(test、test:coverage、typecheck)。

作成/変更するファイル:

  • vitest.config.ts(作成)。
  • テストセットアップファイル(作成)。
  • .github/workflows/ci.yml(作成または更新)。
  • package.json の scripts セクション(更新)。

外部への副作用:

  • Vitest と関連するテストパッケージをインストールするため、bun add -D を実行します。

確認が必要な場合:

  • ユーザーがこの設定を明示的に依頼した場合、またはこの設定を含む計画を承認した場合にのみ、セットアップを適用してください。このスキルの呼び出しだけでは、書き込み権限は付与されません。
  • 既存のテスト設定を上書きする場合や、承認されたセットアップの範囲外の依存関係を追加する場合は、事前に確認してください。

委任先:

  • pre-commit カバレッジゲートを追加する場合は husky-test-coverage スキル(任意、自動では呼び出されません)。
  • E2E レイヤーを追加する場合は playwright-e2e-init(任意、自動では呼び出されません)。

使用する場面

次のような場合にこのスキルを使用してください。

  • テストカバレッジのないプロジェクトにテストを追加する
  • GitHub Actions の CI/CD を初めて設定する
  • カバレッジしきい値を設定して Vitest を構成する
  • 新しいプロジェクトのテスト基盤を初期設定する

実行内容

  1. プロジェクトの種類を検出します(Next.js、NestJS、React、Node.js)。
  2. 適切な設定で Vitest の設定を追加します。
  3. 環境に合わせた テストセットアップファイルを作成します。
  4. CI/CD 用の GitHub Actions ワークフローを追加します。
  5. カバレッジしきい値を 80% に設定します。
  6. package.json に テスト用スクリプトを追加します。
  7. 必要な依存関係をインストールします。

プロジェクトの種類の検出

次の情報をスキャンしてプロジェクトの種類を検出します。

  • package.json の依存関係(next、@nestjs/core、react など)
  • 設定ファイル(next.config.*、nest-cli.json など)
  • ディレクトリ構成(app/、src/、pages/ など)

クイックスタート

プロンプトの例:

Add testing and CI/CD to this project

または、より具体的に指定します。

Set up Vitest with 80% coverage and GitHub Actions for this Next.js project

プロジェクトの種類別の設定

Next.js プロジェクト

インストールされる依存関係:

bun add -D vitest @vitest/coverage-v8 @vitejs/plugin-react @testing-library/react @testing-library/jest-dom jsdom

作成されるファイル:

  • vitest.config.ts - jsdom 環境を使用する Vitest
  • src/test/setup.ts - RTL マッチャーを含むテストセットアップ
  • .github/workflows/ci.yml - CI パイプライン

テストパターン: **/*.{test,spec}.{ts,tsx}

NestJS プロジェクト

インストールされる依存関係:

bun add -D vitest @vitest/coverage-v8 unplugin-swc @swc/core supertest @types/supertest

作成されるファイル:

  • vitest.config.ts - node 環境と unplugin-swc(デコレーターのメタデータ)を使用する Vitest
  • test/setup.ts - NestJS 用のテストセットアップ
  • .github/workflows/ci.yml - Postgres サービスと Prisma マイグレーションを含む CI

テストパターン: src/**/*.spec.ts

React/Node.js プロジェクト

検出されたフレームワークに応じて、同様のパターンを使用します。

カバレッジの設定

デフォルトのしきい値(変更可能):

  • 行:80%
  • 関数:80%
  • 分岐:75%
  • ステートメント:80%

カバレッジは次の場所で適用されます。

  1. pre-commit フック(Husky 経由)
  2. CI/CD パイプライン(GitHub Actions)

GitHub Actions の機能

生成される CI ワークフローには、次の内容が含まれます。

  • キャッシュを使用した Bun のセットアップ
  • 依存関係のインストール
  • Lint/フォーマットチェック(Biome)
  • TypeScript の型チェック
  • カバレッジ付きのテスト実行
  • ビルドの検証
  • Postgres サービスと Prisma マイグレーション(NestJS プロジェクトの場合)

テンプレート

テンプレートは templates/ ディレクトリにあります。

テンプレート用途
vitest.config.nextjs.tsNext.js 用の Vitest 設定
vitest.config.nestjs.tsNestJS 用の Vitest 設定
ci-nextjs.ymlNext.js 用の GitHub Actions
ci-nestjs.ymlNestJS 用の GitHub Actions
test-setup-react.tsRTL を使ったテストセットアップ
test-setup-node.tsNode.js 用のテストセットアップ

モノレポのサポート

モノレポ(package.json のワークスペースから検出されます)の場合:

  1. ルートに vitest.workspace.ts を作成します
  2. パッケージごとに個別の vitest.config.ts を作成します
  3. ルートレベルの GitHub Actions ワークフローを作成します
  4. オーケストレーションに bun --filter '*' test を使用します

他のスキルとの連携

スキル連携内容
husky-test-coverageコミット前のカバレッジ適用を追加します
linter-formatter-initコード品質の向上に併用できます
playwright-e2e-init単体テストの後に E2E テストを追加します
testing-expertテストパターンのガイダンスを提供します

使用例

Next.js プロジェクトにテストを追加する
User: Add testing to this project

Agent:
1. Detects Next.js from package.json
2. Installs vitest, @vitest/coverage-v8, @testing-library/react
3. Creates vitest.config.ts with jsdom environment
4. Creates src/test/setup.ts
5. Creates .github/workflows/ci.yml
6. Adds test scripts to package.json
NestJS API にテストを追加する
User: Set up tests for this NestJS API

Agent:
1. Detects NestJS from @nestjs/core dependency
2. Installs vitest, @vitest/coverage-v8, unplugin-swc, supertest
3. Creates vitest.config.ts with node environment
4. Creates test/setup.ts
5. Creates .github/workflows/ci.yml with a Postgres service
6. Adds test scripts to package.json

トラブルシューティング

テストでモジュールが見つからない

vitest.config.ts のパスエイリアスが tsconfig.json と一致していることを確認してください。

resolve: {
  alias: {
    "@": path.resolve(__dirname, "./src"),
  },
},
カバレッジがしきい値を下回る
  1. カバレッジレポートを確認します:bunx vitest run --coverage
  2. カバーされていない行を特定します
  3. テストを追加するか、しきい値を一時的に調整します
CI で型エラーが発生する

プッシュする前に、ローカルで bunx tsc --noEmit が通ることを確認してください。

ベストプラクティス

  1. ユーティリティとサービスの単体テストから始めます
  2. API エンドポイントに統合テストを追加します
  3. 重要なフローにはE2E テストを控えめに使用します
  4. Husky を通じてコミット前にテストを実行します
  5. CI でカバレッジの推移を監視します

コメント