关于 no-skip
no-skip 是一种会话技能,可阻止向测试文件写入跳过测试的语法,适用于希望在编辑过程中避免新增跳过、独占或占位测试的团队。
主要功能
- 01阻止新增跳过测试语法
- 02检查 test 和 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()— 只运行一个测试(排除所有其他测试)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