关于 configure-tests
用于检查和配置 JavaScript、Python 与 Rust 项目测试框架的技能。它会识别现有设置、按既定实践报告缺口,并可按要求应用配置更改。
主要功能
- 01识别 Vitest、Jest、pytest 和 nextest
- 02检查框架与覆盖率配置
- 03检查测试组织方式和脚本
- 04提供配置修复与迁移方案
- 05检查 CI 测试集成
适用场景
- 01为项目搭建测试基础设施
- 02检查测试框架配置缺口
- 03迁移到现代测试框架
- 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) |
版本检查
重要:标记版本过时之前,先确认最新版本:
- Vitest:查看 vitest.dev 或 GitHub releases
- Jest:查看 jestjs.io 或 npm
- pytest:查看 pytest.org 或 PyPI
- cargo-nextest:查看 nexte.st 或 GitHub releases
报告框架版本过时前,使用 WebSearch 或 WebFetch 验证当前版本。
执行
执行此测试框架合规性检查:
步骤 1:检测框架
识别项目语言和现有测试框架:
| 指标 | 语言 | 检测到的框架 |
|---|---|---|
vitest.config.* | JavaScript/TypeScript | Vitest |
jest.config.* | JavaScript/TypeScript | Jest |
pyproject.toml [tool.pytest] | Python | pytest |
pytest.ini | Python | pytest |
Cargo.toml | Rust | cargo test |
.nextest.toml | Rust | cargo-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 中的模板安装依赖并创建配置:
- 缺少配置:根据模板创建框架配置文件
- 缺少依赖:安装所需软件包
- 缺少覆盖率配置:添加覆盖率配置,并设置 80% 的阈值
- 缺少脚本:在 package.json 中添加测试脚本
- 缺少测试目录:创建标准测试目录结构
步骤 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