mcpField
C
configure-tests

configure-tests

github.com/laurigates测试与质量5954 次安装1 天前更新
代码仓库

关于 configure-tests

用于检查和配置 JavaScript、Python 与 Rust 项目测试框架的技能。它会识别现有设置、按既定实践报告缺口,并可按要求应用配置更改。

主要功能

  1. 01识别 Vitest、Jest、pytest 和 nextest
  2. 02检查框架与覆盖率配置
  3. 03检查测试组织方式和脚本
  4. 04提供配置修复与迁移方案
  5. 05检查 CI 测试集成

适用场景

  1. 01为项目搭建测试基础设施
  2. 02检查测试框架配置缺口
  3. 03迁移到现代测试框架
  4. 04向 CI 工作流添加测试命令

安装

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

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-tests

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

附带文件REFERENCE.md

详细介绍

/configure:tests

根据最佳实践检查并配置测试框架(Vitest、Jest、pytest、cargo-nextest)。

适用场景

使用此技能的场景……使用其他方法的场景……
设置测试基础设施仅运行测试(使用 /test:run 技能)
检查测试框架配置测试已正确配置
迁移到现代测试框架(Vitest、pytest、nextest)编写单个测试(直接编写测试)
验证覆盖率配置调试失败的测试(检查测试输出)
确保遵循测试最佳实践无需测试的简单项目

上下文

  • Package.json:!find . -maxdepth 1 -name \'package.json\'
  • Pyproject.toml:!find . -maxdepth 1 -name \'pyproject.toml\'
  • Cargo.toml:!find . -maxdepth 1 -name \'Cargo.toml\'
  • 测试配置文件:!find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' -o -name '.nextest.toml' \)
  • pyproject 中的 Pytest 配置:!find . -maxdepth 1 -name 'pyproject.toml' -exec grep -c 'tool.pytest' {} +
  • 测试目录:!find . -maxdepth 2 -type d \( -name 'tests' -o -name '__tests__' -o -name 'test' \)
  • package.json 中的测试脚本:!find . -maxdepth 1 -name 'package.json' -exec grep -m5 -o '"test[^"]*"' {} +
  • 覆盖率配置:!find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' \) -exec grep -l 'coverage' {} +
  • 项目规范:!find . -maxdepth 1 -name '.project-standards.yaml' -type f

现代测试技术栈偏好:

  • JavaScript/TypeScript:Vitest(首选)或 Jest
  • Python:pytest 与 pytest-cov
  • Rust:使用 cargo-nextest 提升性能

参数

从 $ARGUMENTS 中解析以下参数:

标志说明
--check-only仅报告状态,不提供修复方案
--fix无需提示,自动应用所有修复
--framework <framework>覆盖框架检测结果(vitest、jest、pytest、nextest)

版本检查

重要:标记版本过时之前,先确认最新版本:

  1. Vitest:查看 vitest.dev 或 GitHub releases
  2. Jest:查看 jestjs.io 或 npm
  3. pytest:查看 pytest.org 或 PyPI
  4. cargo-nextest:查看 nexte.st 或 GitHub releases

报告框架版本过时前,使用 WebSearch 或 WebFetch 验证当前版本。

执行

执行此测试框架合规性检查:

步骤 1:检测框架

识别项目语言和现有测试框架:

指标语言检测到的框架
vitest.config.*JavaScript/TypeScriptVitest
jest.config.*JavaScript/TypeScriptJest
pyproject.toml [tool.pytest]Pythonpytest
pytest.iniPythonpytest
Cargo.tomlRustcargo test
.nextest.tomlRustcargo-nextest

如果提供了 --framework 标志,则使用该值。

步骤 2:分析当前状态

读取检测到的框架配置并检查完整性。针对每种框架,验证:

Vitest:

  • 配置文件存在(vitest.config.ts 或 .js)
  • 已配置 globals: true 以确保兼容性
  • 已适当设置 environment(jsdom、happy-dom、node)
  • 已使用 @vitest/coverage-v8 或 @vitest/coverage-istanbul 配置覆盖率
  • 已配置监视模式排除项

Jest:

  • 配置文件存在(jest.config.js 或 .ts)
  • 已配置 testEnvironment
  • 存在覆盖率配置
  • 已配置 TypeScript/JSX 转换
  • 已配置模块路径别名

pytest:

  • pyproject.toml 中有 [tool.pytest.ini_options] 部分
  • 已配置 testpaths
  • addopts 包含实用标志(-v、--strict-markers)
  • 已定义用于测试分类的 markers
  • 已安装 pytest-cov

cargo-nextest:

  • .nextest.toml 存在
  • 已配置配置文件(default、ci)
  • 已配置重试策略
  • 如有需要,已定义测试组
步骤 3:报告结果

打印合规报告,包含:

  • 检测到的框架及版本
  • 每项配置检查结果
  • 测试组织方式(单元/集成/e2e 目录)
  • 软件包脚本状态(test、test:watch、test:coverage)
  • 问题总数及建议

如果指定了 --check-only,则在此处停止。

步骤 4:应用修复(如果指定了 --fix 或用户确认)

使用 REFERENCE.md 中的模板安装依赖并创建配置:

  1. 缺少配置:根据模板创建框架配置文件
  2. 缺少依赖:安装所需软件包
  3. 缺少覆盖率配置:添加覆盖率配置,并设置 80% 的阈值
  4. 缺少脚本:在 package.json 中添加测试脚本
  5. 缺少测试目录:创建标准测试目录结构
步骤 5:设置测试组织结构

为检测到的语言创建标准测试目录结构。请参阅 REFERENCE.md 中的目录结构模式。

步骤 6:配置 CI/CD 集成

检查 GitHub Actions 工作流中是否有测试命令。如果没有,则使用 REFERENCE.md 中的 CI 模板添加 CI 测试命令。

步骤 7:处理迁移(如果正在升级)

如果在框架之间迁移(例如,从 Jest 迁移到 Vitest,从 unittest 迁移到 pytest),请遵循 REFERENCE.md 中的迁移指南。

步骤 8:更新标准跟踪

更新 .project-standards.yaml:

standards_version: "2025.1"
last_configured: "<timestamp>"
components:
  tests: "2025.1"
  tests_framework: "<vitest|jest|pytest|nextest>"
  tests_coverage_threshold: 80
  tests_ci_integrated: true

有关详细配置模板、迁移指南、CI/CD 集成示例和目录结构模式,请参阅 REFERENCE.md。

面向 Agent 的优化

上下文命令
检测测试框架find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' \) 2>/dev/null
检查覆盖率配置grep -l 'coverage' package.json pyproject.toml 2>/dev/null
列出测试文件find . \( -path '*/tests/*' -o -path '*/test/*' -o -name '*.test.*' -o -name '*.spec.*' \) 2>/dev/null | head -n 10
快速合规检查/configure:tests --check-only
自动修复配置/configure:tests --fix

错误处理

  • 未找到 package.json:无法配置 JS/TS 测试,跳过或报错
  • 框架冲突:针对存在多个测试配置发出警告,需要手动解决
  • 缺少依赖:提供安装所需软件包的选项
  • 配置语法无效:报告解析错误,并提供使用模板替换的选项

另请参阅

  • /configure:coverage - 配置覆盖率阈值和报告
  • /configure:all - 运行所有合规检查
  • /test:run - 通用测试运行器
  • /test:setup - 全面的测试基础设施设置
  • Vitest 文档:https://vitest.dev
  • pytest 文档:https://docs.pytest.org
  • cargo-nextest 文档:https://nexte.st

评论

支持 Markdown