mcpField
R
rstest-debugging

rstest-debugging

github.com/rstackjsTesting & quality97124 installsUpdated 6d ago
Repository

About rstest-debugging

rstest-debugging is a diagnostic skill for investigating Rstest performance without changing test behavior or manifests. It guides measurement by lifecycle stage, controlled one-variable comparisons, and repeatable validation before retaining a change.

Key features

  1. 01Establish comparable single-file and full-scope baselines
  2. 02Classify costs with rstest --trace
  3. 03Inspect resolved configuration with DEBUG=rstest
  4. 04Compare dependency bundling settings
  5. 05Keep only repeatable changes that preserve test validity
  6. 06Remove diagnostic artifacts before handoff

Use cases

  1. 01Investigate slow Rstest runs
  2. 02Determine whether build, runtime, or reporting dominates
  3. 03Evaluate dependency bundling options
  4. 04Verify a performance change against full test scope

Install

Copy the command and run it in a terminal.

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

After installing, type/rstest-debuggingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

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

Details

From the project README

Rstest debugging

Diagnose the measured lifecycle stage before changing configuration. Keep behavior and the test manifest fixed, change one variable at a time, and remove experiments that do not produce a repeatable benefit.

Workflow

  1. Establish comparable single-file and full-scope baselines with references/performance-measurement.md.
  2. Run rstest --trace when supported and classify the cost as host build/startup, runtime load/setup/collect, test bodies/hooks, or CLI/report/teardown overhead.
  3. Use DEBUG=rstest for resolved config and build output. For Rstest 0.11.7+ experimental per-test bundle coverage, follow references/performance-measurement.md. Use Rsdoctor only after evidence points to the compiler. Use verbose reporting or a profiler only after narrowing to runtime files/cases.
  4. If dependency loading or compilation is implicated, read references/dependency-bundling.md. Compare the environment default, bundleDependencies: false, and bundleDependencies: true; neither bundling nor externalization is universally faster.
  5. If a fully mocked heavy module still reaches the build graph, read references/mocked-module-build-graph.md before testing an exact external.
  6. If assets, console output, pools, isolation, or memory dominate, read references/runtime-output-memory.md.
  7. Rerun the representative file and full scope. Keep a change only when behavior, discovery, snapshots, and coverage remain valid and the benefit survives repeated measurement. Remove traces, profiles, and .rstest debug artifacts created by the diagnosis before handing off.

Guardrails

  • Use the project's installed Rstest for final claims. Label local checkout or unreleased diagnostic results separately.
  • Keep Node version, test files, coverage, cache state, environment, workers, and command shape fixed while comparing.
  • Do not add worker durations that overlap or subtract runner/build/tests values without verifying their lifecycle boundaries.
  • Do not treat aggregate process-tree RSS as physical memory; it can double-count shared pages.
  • Do not disable isolation, reduce coverage, silence failures, or change production/test semantics for a benchmark win.
  • Do not stack speculative aliases, externals, compiler hooks, pool settings, or caches. Preserve only the measured minimum.

Handoff from migration

When invoked from migrate-to-rstest, first confirm that the Jest/Vitest and Rstest manifests match. If the migration intentionally adds tests, report same-scope performance separately from final expanded-scope performance.

Comments

Markdown supported