no-skip について
no-skip は、テストファイルにテストをスキップする構文を書き込む操作を防ぐセッションスキルです。編集時にスキップ、単独実行、未実装のテストが追加されるのを防ぎたいチーム向けです。
主な機能
- 01新たなスキップ構文をブロック
- 02テストファイルと spec ファイルを確認
- 03スキップと単独実行のマーカーを検出
- 04複数のテストフレームワークの構文に対応
活用シーン
- 01変更によるテストのスキップを防止
- 02他のテストを除外する単独実行をブロック
- 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 を使う場合はパターンに追加してください
コメント
Markdown 対応