mcpField
L
ln-782-test-runner

ln-782-test-runner

github.com/levnikolaevich测试与质量584412 次安装2 天前更新
代码仓库

关于 ln-782-test-runner

面向项目测试的 Skill,可检测已配置的测试框架、执行测试套件,并返回结构化结果和可选覆盖率。适用于独立测试和 CI 测试步骤,不负责构建项目或编写、修复测试。

主要功能

  1. 01自动检测测试框架
  2. 02运行检测到的测试套件
  3. 03解析通过、失败、跳过数及耗时
  4. 04可选生成覆盖率报告
  5. 05返回含失败详情的结构化结果
  6. 06支持超时与并行执行选项

适用场景

  1. 01独立运行测试
  2. 02在 CI 流程中加入测试步骤
  3. 03在测试运行时收集覆盖率

安装

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-782-test-runner

安装后在 Claude Code 中输入/ln-782-test-runner确认已加载。

附带文件references/ci_tool_detection.mdreferences/monitor_integration_pattern.md

详细介绍

路径: 文件路径(references/、../ln-*)均相对于此技能目录。

必须阅读: 加载 references/ci_tool_detection.md——测试框架注册表、精简标志(--tb=short -q、--reporter=json)以及规范化链。

ln-782-test-runner

类型: L3 Worker 类别: 7XX 项目引导


用途

检测测试框架,执行所有测试套件,并报告结果,包括通过/失败数量以及可选的覆盖率。

范围:

  • 从项目配置中自动检测测试框架
  • 为所有检测到的框架执行测试套件
  • 解析测试输出,统计通过/失败数量
  • 启用覆盖率时生成覆盖率报告

不在范围内:

  • 构建项目(由 ln-781 处理)
  • 容器操作(由 ln-783 处理)
  • 编写或修复测试

使用时机

场景使用此技能
可独立运行是
独立执行测试是
CI/CD 流水线测试步骤是
需要验证构建否,使用 ln-781

工作流

步骤 1:检测测试框架

根据项目配置文件识别测试框架。

标记测试框架项目类型
vitest.config.*VitestNode.js
jest.config.*JestNode.js
package.json 中的 *.test.tsVitest/JestNode.js
*.csproj 中的 xunit / nunitxUnit/NUnit.NET
pytest.ini / conftest.pypytestPython
*_test.go 文件go testGo
包含 Cargo.toml 的 tests/cargo testRust
步骤 2:执行测试套件

为每个检测到的框架运行测试。

框架执行策略
Vitest使用 JSON reporter 以单次运行模式运行
Jest使用 JSON 输出运行
xUnit/NUnit使用 logger 获取结构化输出
pytest使用 JSON 插件或详细输出运行
go test使用 JSON 输出标志运行
cargo test使用标准输出解析运行
步骤 3:解析结果

从框架输出中提取测试结果。

指标说明
total发现的测试总数
passed成功完成的测试数
failed断言失败的测试数
skipped标记为跳过/忽略的测试数
duration总执行时间
步骤 4:生成覆盖率(可选)

启用覆盖率时,收集覆盖率指标。

框架覆盖率工具
Vitest/Jestc8 / istanbul
.NETcoverlet
pytestpytest-cov
Gogo test -cover
Rustcargo-tarpaulin

覆盖率指标:

指标说明
linesCovered测试期间执行的代码行数
linesTotal代码库中的总行数
percentage覆盖率百分比
步骤 5:报告结果

向编排器返回结构化结果。

结果结构:

字段说明
suiteName测试套件标识符
framework检测到的测试框架
statuspassed / failed / error
total测试总数
passed通过的测试数
failed失败的测试数
skipped跳过的测试数
duration执行时间(秒)
failures失败详情数组(测试名称、消息)
coverage覆盖率指标(如已启用)

错误处理

错误类型操作
未找到测试报告警告,status = passed(0 个测试)
测试超时报告超时,并包含部分结果
框架错误记录错误,报告为 error 状态
缺少依赖项报告缺少的测试依赖项

选项

选项默认值说明
skipTestsfalse未找到测试时跳过执行
allowFailuresfalse即使测试失败也报告成功
coveragefalse生成覆盖率报告
timeout300最长执行时间(秒)
paralleltrue尽可能并行运行测试套件

关键规则

  1. 运行所有检测到的测试套件——不要悄悄跳过任何套件
  2. 解析实际结果——不要只依赖退出代码
  3. 提供失败详情——提供可用于调试的具体信息
  4. 遵守超时设置——防止无限循环导致程序挂起
监控集成(Claude Code 2.1.98+)

**必须阅读:**加载 references/monitor_integration_pattern.md

对于预计运行时间超过 30 秒的测试套件,使用 Monitor 实时传输失败信息:

模式命令timeout_ms
传输失败信息{test_command} 2>&1 | grep --line-buffered -E 'FAIL|Error|✗|AssertionError'timeout * 1000(来自 Options)
完整输出{test_command} 2>&1timeout * 1000

立即响应首次失败,同时让其余测试继续运行。

备用方案:如果 Monitor 不可用(Bedrock/Vertex),使用 Bash(run_in_background=true)。


完成标准

  • 检测到所有测试框架
  • 执行所有测试套件
  • 解析并整理测试结果
  • 收集覆盖率数据(如已启用)
  • 将结果返回给协调器

参考文件

  • 上级目录:../ln-780-bootstrap-verifier/SKILL.md

**版本:**2.0.0
**最后更新:**2026-01-10

评论

支持 Markdown