mcpField
T
testing

testing

github.com/poteto测试与质量571240 次安装32 周前更新
代码仓库

关于 testing

面向 Noodle 开发者的测试驱动技能,强调修复前先复现问题。内容说明基于目录的测试夹具,并提供运行、检查和维护测试套件的命令。

主要功能

  1. 01先复现问题再修复
  2. 02基于目录的测试夹具
  3. 03缺陷夹具使用指南
  4. 04测试与检查命令
  5. 05维护夹具哈希和输出

适用场景

  1. 01改代码前复现缺陷
  2. 02添加基于夹具的回归测试
  3. 03运行单包或集成测试
  4. 04检查夹具与项目质量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/poteto/noodle --skill testing

安装后在 Claude Code 中输入/testing确认已加载。

附带文件references/fixtures.md

详细介绍

测试

默认采用测试驱动。在解决问题前,先证明问题存在。

核心工作流:先复现 Bug

  1. 复现 — 运行失败场景并观察实际行为
  2. 编写失败测试 — 将最小复现写成测试用例
  3. 提交失败测试 — 使用 Skill(commit),提交消息类似 test: reproduce #issue-description
  4. 修复代码 — 现在才尝试修复
  5. 验证 — 运行 pnpm test 并确认测试通过
  6. 提交修复 — 与测试分开提交

所有 Bug 修复都适用此流程。失败测试能证明 Bug 存在,并防止回归。

Fixture 测试

Noodle 使用基于目录的 fixture,存放在 testdata/ 中。有关完整格式、辅助 API 和代码模式,请阅读 references/fixtures.md。

创建新 Fixture
./scripts/scaffold-fixture.sh <package-dir> <fixture-name> [state-count]

填写生成的 input.json/input.ndjson 和 expected.md,然后:

pnpm fixtures:hash:sync
Bug Fixture

有关完整的 Bug fixture 格式(frontmatter 字段、预期错误部分和修复工作流),请参阅 references/fixtures.md。

常用命令

命令用途
pnpm test运行所有测试
pnpm test:short跳过集成测试
pnpm check完整的本地 CI(测试 + vet + lint + fixtures)
pnpm bugs列出标记为已知 Bug 的 fixture
pnpm fixtures:loop验证 loop fixture 是否符合预期
pnpm fixtures:loop:record重新生成 loop fixture 的预期输出
pnpm fixtures:hash验证 fixture 输入哈希
pnpm fixtures:hash:sync更新 fixture 输入哈希
pnpm vet运行 go vet
pnpm lint:arch架构 lint(文件大小、旧式模式)

运行特定测试

# Single package
go test ./loop

# Single test
go test ./loop -run TestLoopDirectoryFixtures

# Bypass cache
go test -count=1 ./parse

# With race detector
go test -race ./...

# Verbose
go test -v ./tui

集成测试

长时间运行或依赖外部资源的测试使用 testing.Short():

if testing.Short() {
    t.Skip("skipping integration test in short mode")
}

pnpm test:short 会跳过这些测试。pnpm test 会运行所有测试。

评论

支持 Markdown