mcpField
T
test-detect

test-detect

github.com/davila7测试与质量33.0k40 次安装今天更新
代码仓库

关于 test-detect

用于识别当前项目测试框架并运行对应测试的技能,面向需要执行或生成测试的开发者。它依据配置文件和依赖选择命令,也支持针对文件运行测试及生成测试文件。

主要功能

  1. 01检测项目测试框架
  2. 02运行全量或指定文件测试
  3. 03按源文件生成测试
  4. 04报告测试结果与失败信息
  5. 05处理多个框架与 Monorepo

适用场景

  1. 01快速运行项目现有测试
  2. 02为单个源文件定位并运行测试
  3. 03为函数、类或组件生成测试
  4. 04在多框架项目中选择测试命令

安装

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

$npx skills add https://github.com/davila7/claude-code-templates --skill test-detect

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

详细介绍

测试框架检测

自动检测当前项目中的测试框架,并运行相应的测试。

工作流

步骤 1:检测测试框架

按顺序检查以下文件(以第一个匹配项为准):

检查项框架运行命令
存在 vitest.config.* 或 devDeps 中包含 vitestVitestnpx vitest run
存在 jest.config.* 或 devDeps 中包含 jestJestnpx jest
存在 playwright.config.*Playwrightnpx playwright test
存在 cypress.config.*Cypressnpx cypress run
存在 pytest.ini、conftest.py,或包含 [tool.pytest] 的 pyproject.tomlpytestpython -m pytest
存在 go.modGo 测试go test ./...
存在 Cargo.tomlRust/cargocargo test
存在 mix.exsExUnitmix test
包含 rspec 的 GemfileRSpecbundle exec rspec
package.json 包含 scripts.testnpm testnpm test

继续之前,先报告检测到的框架。

步骤 2:解析参数

检查 $ARGUMENTS 中的模式:

  • 无参数或 "all":运行完整测试套件(步骤 3)
  • 文件路径(例如 src/auth/login.ts):运行该文件对应的测试(步骤 4)
  • "generate" + 文件路径(例如 generate src/utils.ts):生成测试(步骤 5)
步骤 3:运行完整测试套件

运行检测到的测试命令。完成后:

  • 报告测试总数、通过数、失败数和跳过数
  • 如果测试失败,显示前 3 条失败信息及其 file:line 引用
  • 建议:「运行 /test-detect <failing-file> 调查特定失败」
步骤 4:运行特定文件的测试

给定源文件路径,查找其测试文件:

搜索策略(按顺序尝试):

  1. __tests__/<filename>.test.<ext>(Jest 约定)
  2. <filename>.test.<ext>(同目录放置)
  3. <filename>.spec.<ext>(替代约定)
  4. test/<filename>_test.<ext>(Go/Python 约定)
  5. tests/test_<filename>.<ext>(pytest 约定)
  6. <filename>_test.go(Go 约定)

使用 Glob 查找匹配项。如果找到,则只运行该测试文件:

框架命令
Vitestnpx vitest run <test-file>
Jestnpx jest <test-file>
Playwrightnpx playwright test <test-file>
pytestpython -m pytest <test-file>
Gogo test -run <TestName> ./<package>/
Cargocargo test <test_name>

如果没有找到测试文件,询问:「未找到此文件的测试。要我生成测试吗?运行 /test-detect generate <file>」

步骤 5:生成测试

读取源文件并分析:

  1. 识别所有导出的函数、类和组件
  2. 确定适合该框架的测试模式
  3. 生成包含以下内容的测试文件:
    • 导入语句
    • 每个函数或类对应一个 describe 块
    • 覆盖正常路径、边界情况和错误情况的 it/test 块
    • 符合框架习惯的断言和模拟

保存到检测到的框架所约定的位置:

  • Jest/Vitest:__tests__/<filename>.test.<ext> 或 <filename>.test.<ext>(遵循现有约定)
  • pytest:tests/test_<filename>.py
  • Go:<filename>_test.go(同一目录)
  • RSpec:spec/<filename>_spec.rb

显示生成的文件路径,并询问用户是否要运行新测试。

提示

  • 如果检测到多个框架(例如,用 Vitest 进行单元测试,用 Playwright 进行端到端测试),请提及两者,并默认使用单元测试框架
  • 对于单体仓库,从最接近当前目录的配置文件进行检测
  • 如果 package.json 同时包含 test 和 test:unit/test:e2e 脚本,且上下文明确,则优先使用专用脚本

评论

支持 Markdown