关于 rstest-debugging
rstest-debugging 是用于排查 Rstest 性能问题的诊断技能,要求不改变测试行为或清单。它按生命周期阶段测量,通过控制变量进行比较,并在保留改动前验证收益是否可重复。
主要功能
- 01建立单文件和全范围的可比基线
- 02用 rstest --trace 分类耗时阶段
- 03用 DEBUG=rstest 检查解析后的配置
- 04比较依赖打包设置
- 05仅保留可重复且不损害测试有效性的改动
- 06交接前清除诊断产物
适用场景
- 01排查 Rstest 运行缓慢
- 02判断构建、运行时或报告环节是否耗时
- 03评估依赖打包选项
- 04在完整测试范围内验证性能改动
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rstackjs/ agent-skills --skill rstest-debugging安装后在 Claude Code 中输入/rstest-debugging确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/dependency-bundling.mdmocked-module-build-graph.mdperformance-measurement.mdruntime-output-memory.md详细介绍
Rstest 调试
更改配置前,先诊断测量到的生命周期阶段。保持行为和测试清单不变,每次只更改一个变量,并移除无法带来可重复收益的实验。
工作流
- 使用
references/performance-measurement.md建立可比较的单文件和完整范围基线。 - 在支持的情况下运行
rstest --trace,并将耗时归类为主机端构建/启动、运行时加载/设置/收集、测试主体/钩子,或 CLI/报告/拆卸开销。 - 使用
DEBUG=rstest查看解析后的配置和构建输出。对于 Rstest 0.11.7+ 的实验性逐测试打包覆盖率,请参阅references/performance-measurement.md。只有证据指向编译器时才使用 Rsdoctor。只有在缩小到运行时文件/用例范围后,才使用详细报告或分析器。 - 如果问题涉及依赖加载或编译,请阅读
references/dependency-bundling.md。比较环境默认设置、bundleDependencies: false和bundleDependencies: true;打包和外部化都不一定更快。 - 如果完全模拟的重型模块仍进入构建图,请先阅读
references/mocked-module-build-graph.md,再测试精确的外部项。 - 如果主要开销来自资源、控制台输出、池、隔离或内存,请阅读
references/runtime-output-memory.md。 - 重新运行代表性文件和完整范围。只有在行为、测试发现、快照和覆盖率均有效,且收益经反复测量仍然存在时,才保留更改。交接前,移除诊断过程中生成的跟踪文件、分析文件和
.rstest调试产物。
注意事项
- 最终结论应使用项目已安装的 Rstest。将本地检出版本或未发布版本的诊断结果单独标明。
- 比较时固定 Node 版本、测试文件、覆盖率、缓存状态、环境、工作进程和命令形式。
- 不要累加存在重叠的工作进程耗时,也不要在未核实其生命周期边界时,对运行器/构建/测试数值进行相减。
- 不要将进程树的 RSS 总量视为物理内存;它可能重复计算共享页面。
- 不要为了基准测试的提升而禁用隔离、降低覆盖率、屏蔽失败,或更改生产/测试语义。
- 不要堆叠未经验证的别名、外部项、编译器钩子、池设置或缓存。只保留经过测量所需的最小改动。
从迁移流程交接
从 migrate-to-rstest 调用时,先确认 Jest/Vitest 和 Rstest 的清单一致。如果迁移有意增加了测试,请分别报告相同范围的性能和最终扩展范围的性能。
评论
支持 Markdown