mcpField
N
no-skip

no-skip

github.com/proffesor-for-testing测试与质量51960 次安装今天更新
代码仓库

关于 no-skip

no-skip 是一种会话技能,可阻止向测试文件写入跳过测试的语法,适用于希望在编辑过程中避免新增跳过、独占或占位测试的团队。

主要功能

  1. 01阻止新增跳过测试语法
  2. 02检查 test 和 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() — 只运行一个测试(排除所有其他测试)
  • xit( / xdescribe( — Jasmine 跳过语法
  • test.todo( — 尚未实现的测试占位符
  • @Skip / @Disabled — JUnit 跳过注解

启用

/no-skip

Hook 配置

{
  "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 停用
  • 某些框架使用 pending() 而非 .skip() — 如果使用 Jasmine,请将其添加到模式中

评论

支持 Markdown