📦 Jest Unit Test — Jest 单元测试

v1.0.3

Jest 单元测试工具。

1· 89·0 当前·0 累计
vuact 头像by @vuact·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/8
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
Skill 在功能上与“Jest 单测管理/补全/诊断”描述大体一致,但存在若干实现细节和边界条件不够严格(如命令拼接、配置文件存放位置与注入风险、以及自动修改源文件的能力),建议在受控环境/分支中先审计并备份再使用。
评估建议
这个技能看起来确实会运行 Jest、生成/解析 coverage,并自动写入测试文件以尝试把覆盖率补到 100%,功能与描述一致。但有几点在使用前务必注意: 1) 在启用前备份或在单独分支/沙箱仓库运行:completer 会编辑测试文件(并可能在极少数情况下修改源文件),以免意外破坏主分支代码。 2) 检查并确认 source.json(jestConfigPath)的内容:脚本把该路径直接拼到 shell 命令里,错误或恶意的路径字符串可能导致命令注入风险。不要把不可信的字符串写入 source.json。最好由你手动填写或审查该文件后再运行 reload。 3) 审阅生成的 config.json 与 .temp 内容:技能将 per-project 配置和覆盖率产物放在 skill 的 .temp 下(skill 包目录),这可能与你预期的项目结构不同,确认路径不会暴露敏感信息或被误提交。 4) 网络/依赖行为:脚本使用 npx 和可能触发 npm 下载,确保在可控网络环境下运行,或事先在项目中安装好依赖(本地 jest),以减少远程包拉取。 5) 命令注入风险:如果你担心安...
详细分析 ▾
用途与能力
技能名与描述(覆盖率检测、自动补全测试、诊断修复)与包含的脚本/子技能功能对齐;所需权限(读写测试文件、运行 jest/npx)与功能预期相符。唯一偏差是脚本把 per-project 配置(source.json/config.json)放在 skill 包目录下的 .temp 中,而不是直接放在项目目录,这可能令用户意外地将项目相关配置保存在 skill 安装目录。
指令范围
运行时的脚本会:读取项目 jest 配置和源码、运行 npx jest(通过 execSync / shell)、解析 coverage 与错误、并在 completer 中使用 Edit/Write/ MultiEdit 修改测试文件(在明确告知下才会修改源文件)。风险点:命令字符串以简单拼接方式构建并传入 shell(例如 testCommand 包含来自 source.jestConfigPath 与其他配置字段),如果这些字段被恶意或意外设置,可能出现命令注入;脚本也会读取/写入项目文件,带来潜在的破坏性改动(虽然文档声明优先修改测试文件)。总体上操作超出“只读分析”的范围,但与“自动补全/修复单测”的目的有关联。
安装机制
该 skill 是 instruction-only(无安装规范),包含本地脚本文件。没有从远程 URL 下载或在安装时执行未知二进制文件,风险相对较低。
凭证需求
技能不请求任何环境变量或外部凭证——这与其本地运行测试/修改文件的目的相称。需要注意的是,它会调用 `npx`/`git`,这些工具可能会访问网络或本地工具链,且运行 `npx` 会在需要时从 npm 拉取包,这是预期行为但有网络依赖。
持久化与权限
技能不会设置 always:true,也不请求持久凭证,但会在 skill 包目录生成 `.temp/projects/<hash>/` 和 coverage 报告文件,且允许通过 agent 的 Edit/Write 权限自动修改测试文件(并在特定情况下修改源文件)。自动修改代码是该技能的核心功能,但对不熟悉行为的用户具有潜在破坏性,应该在受控分支或备份下运行。
scripts/guard-config.cjs:63
Shell command execution detected (child_process).
scripts/reload.cjs:169
Shell command execution detected (child_process).
scripts/resolve-project.cjs:30
Shell command execution detected (child_process).
sub-skills/unittest-checker/scripts/analyze-coverage/index.cjs:63
Shell command execution detected (child_process).
sub-skills/unittest-completer/scripts/check-coverage-100/index.cjs:47
Shell command execution detected (child_process).
sub-skills/unittest-doctor/scripts/test-error-reporter/index.cjs:39
Shell command execution detected (child_process).
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.32026/4/2

- Added multi-project support: each project's configuration files are now isolated under .temp/projects/<hash>/ to prevent conflicts. - Updated configuration instructions and error handling to reflect the new per-project config system. - Added scripts/resolve-project.cjs; removed config.json and source.json from the root (now managed per project). - Documentation updated to explain config paths, hash calculation, and automatic project detection.

可疑

安装命令

点击复制
官方npx clawhub@latest install jest-unittest
镜像加速npx clawhub@latest install jest-unittest --registry https://cn.longxiaskill.com

技能文档

根据用户意图路由到对应子技能。

配置

配置文件按项目隔离,存放在 .temp/projects// 下(hash 由项目根路径计算):

  • source.json — 用户配置的 jest 配置文件路径
  • 配置.json — 由 重新加载.cjs 自动生成的完整配置

各子技能的脚本启动时会自动校验配置和环境。如果返回 error 字段,根据 type 处理:

  • config_error → 按 hint 帮用户配置 source.json(路径见错误信息中的 sourceJsonPath),执行 节点 scripts/重新加载.cjs 生成配置,然后重试
  • env_error → 根据 错误 信息排查环境问题,解决后重试

用户主动要求 reload 时,直接执行 node scripts/reload.cjs

多项目支持

本 skill 支持在多个项目间使用而不产生配置冲突。每个项目的 source.jsonconfig.json 独立存放在 .temp/projects// 下,切换项目时自动识别。

路由规则

用户意图路由到
查看覆盖率、检查哪些单测覆盖率未达标、覆盖率报告unittest-checker
补充测试、让单测覆盖率达到100%、写单测unittest-completer
单测报错、单测失败、修复单测、诊断单测问题unittest-doctor

严禁事项

  • 严禁手动编辑 配置.json,必须通过 重新加载.cjs 生成。
  • 严禁修改项目的 jest 配置文件来适配本 skill。
  • 严禁手动运行 jest 命令来替代脚本,脚本参数由 配置.json 提供。

Sub-skills

Sub-skill功能
unittest-checker运行测试并分析覆盖率,输出未达标组件列表
unittest-completer指定组件名,自动补充测试直到四项覆盖率全部100%
unittest-doctor运行测试,诊断失败和console警告,支持自动修复
数据来源ClawHub ↗ · 中文优化:龙虾技能库