mcpField
R
rstest-debugging

rstest-debugging

github.com/rstackjs测试与质量97124 次安装6 天前更新
代码仓库

关于 rstest-debugging

rstest-debugging 是用于排查 Rstest 性能问题的诊断技能,要求不改变测试行为或清单。它按生命周期阶段测量,通过控制变量进行比较,并在保留改动前验证收益是否可重复。

主要功能

  1. 01建立单文件和全范围的可比基线
  2. 02用 rstest --trace 分类耗时阶段
  3. 03用 DEBUG=rstest 检查解析后的配置
  4. 04比较依赖打包设置
  5. 05仅保留可重复且不损害测试有效性的改动
  6. 06交接前清除诊断产物

适用场景

  1. 01排查 Rstest 运行缓慢
  2. 02判断构建、运行时或报告环节是否耗时
  3. 03评估依赖打包选项
  4. 04在完整测试范围内验证性能改动

安装

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

$npx skills add https://github.com/rstackjs/agent-skills --skill rstest-debugging

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
dependency-bundling.md
mocked-module-build-graph.md
performance-measurement.md
runtime-output-memory.md

详细介绍

Rstest 调试

更改配置前,先诊断测量到的生命周期阶段。保持行为和测试清单不变,每次只更改一个变量,并移除无法带来可重复收益的实验。

工作流

  1. 使用 references/performance-measurement.md 建立可比较的单文件和完整范围基线。
  2. 在支持的情况下运行 rstest --trace,并将耗时归类为主机端构建/启动、运行时加载/设置/收集、测试主体/钩子,或 CLI/报告/拆卸开销。
  3. 使用 DEBUG=rstest 查看解析后的配置和构建输出。对于 Rstest 0.11.7+ 的实验性逐测试打包覆盖率,请参阅 references/performance-measurement.md。只有证据指向编译器时才使用 Rsdoctor。只有在缩小到运行时文件/用例范围后,才使用详细报告或分析器。
  4. 如果问题涉及依赖加载或编译,请阅读 references/dependency-bundling.md。比较环境默认设置、bundleDependencies: false 和 bundleDependencies: true;打包和外部化都不一定更快。
  5. 如果完全模拟的重型模块仍进入构建图,请先阅读 references/mocked-module-build-graph.md,再测试精确的外部项。
  6. 如果主要开销来自资源、控制台输出、池、隔离或内存,请阅读 references/runtime-output-memory.md。
  7. 重新运行代表性文件和完整范围。只有在行为、测试发现、快照和覆盖率均有效,且收益经反复测量仍然存在时,才保留更改。交接前,移除诊断过程中生成的跟踪文件、分析文件和 .rstest 调试产物。

注意事项

  • 最终结论应使用项目已安装的 Rstest。将本地检出版本或未发布版本的诊断结果单独标明。
  • 比较时固定 Node 版本、测试文件、覆盖率、缓存状态、环境、工作进程和命令形式。
  • 不要累加存在重叠的工作进程耗时,也不要在未核实其生命周期边界时,对运行器/构建/测试数值进行相减。
  • 不要将进程树的 RSS 总量视为物理内存;它可能重复计算共享页面。
  • 不要为了基准测试的提升而禁用隔离、降低覆盖率、屏蔽失败,或更改生产/测试语义。
  • 不要堆叠未经验证的别名、外部项、编译器钩子、池设置或缓存。只保留经过测量所需的最小改动。

从迁移流程交接

从 migrate-to-rstest 调用时,先确认 Jest/Vitest 和 Rstest 的清单一致。如果迁移有意增加了测试,请分别报告相同范围的性能和最终扩展范围的性能。

评论

支持 Markdown