mcpField
N
no-skip

no-skip

github.com/proffesor-for-testingテスト・品質51960 回インストール今日更新
リポジトリ

no-skip について

no-skip は、テストファイルにテストをスキップする構文を書き込む操作を防ぐセッションスキルです。編集時にスキップ、単独実行、未実装のテストが追加されるのを防ぎたいチーム向けです。

主な機能

  1. 01新たなスキップ構文をブロック
  2. 02テストファイルと spec ファイルを確認
  3. 03スキップと単独実行のマーカーを検出
  4. 04複数のテストフレームワークの構文に対応

活用シーン

  1. 01変更によるテストのスキップを防止
  2. 02他のテストを除外する単独実行をブロック
  3. 03未実装のテストの追加を防止

インストール

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill no-skip

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

同梱ファイルscripts/check-skips.sh

詳細

スキップ禁止モード

有効にすると、テストファイルにテストをスキップするパターンを書き込む操作をブロックします。

機能

テストファイルへの次のパターンの書き込みを防ぎます。

  • .skip() — 個別のテストをスキップします
  • .only() — 1 つのテストだけを実行し、ほかのすべてを除外します
  • xit( / xdescribe( — Jasmine のスキップ構文です
  • test.todo( — 未実装のテストのプレースホルダーです
  • @Skip / @Disabled — JUnit のスキップアノテーションです

有効化

/no-skip

フックの設定

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/no-skip/scripts/check-skips.sh",
        "condition": "file matches **/*.test.{ts,js,tsx,jsx} OR **/*.spec.{ts,js}"
      }
    ]
  }
}

適用ロジック

#!/bin/bash
# check-skips.sh
CONTENT="$1"

SKIP_PATTERNS=(
  '\.skip\s*\('
  '\.only\s*\('
  '\bxit\s*\('
  '\bxdescribe\s*\('
  '\bxcontext\s*\('
  'test\.todo\s*\('
  '@Skip'
  '@Disabled'
  '@Ignore'
)

for pattern in "${SKIP_PATTERNS[@]}"; do
  if echo "$CONTENT" | grep -qP "$pattern"; then
    echo "BLOCKED: Found skip pattern '$pattern'"
    echo "Remove the skip and either fix the test or delete it."
    exit 1
  fi
done

注意点

  • 既存のスキップではなく、新たに書き込まれるスキップを検出します。既存のスキップを探すには、grep -r '.skip(' tests/ を実行してください
  • .only() はデバッグ中に意図的に使われることがあります。必要に応じて /no-skip off で無効にしてください
  • 一部のフレームワークでは .skip() の代わりに pending() を使います。Jasmine を使う場合はパターンに追加してください

コメント