mcpField
R
rstest-debugging

rstest-debugging

github.com/rstackjsテスト・品質97124 回インストール6 日前に更新
リポジトリ

rstest-debugging について

rstest-debugging は、テストの動作やマニフェストを変えずに Rstest の性能を調査する診断スキルです。ライフサイクルごとに測定し、一度に一つの変数を比較して、再現性を確認してから変更を残します。

主な機能

  1. 01単一ファイルと全範囲の比較可能な基準値を取得
  2. 02rstest --trace でコストの段階を分類
  3. 03DEBUG=rstest で解決済み設定を確認
  4. 04依存関係のバンドル設定を比較
  5. 05テストの妥当性を保つ再現可能な変更のみ採用
  6. 06引き継ぎ前に診断用ファイルを削除

活用シーン

  1. 01Rstest の実行が遅い原因を調査
  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つにし、再現性のある効果が得られない実験は取り除きます。

ワークフロー

  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 のマニフェストが一致していることを確認します。移行で意図的にテストを追加した場合は、同一範囲でのパフォーマンスと、拡張後の最終的な範囲でのパフォーマンスを分けて報告してください。

コメント