Zurück zu Fähigkeiten

run-puzzle-tests

pjt222
Aktualisiert 2 days ago
1 Ansichten
17
2
17
Auf GitHub ansehen
Testentesting

Über

Diese Fähigkeit führt die jigsawR-Testsuite über WSL R aus und unterstützt komplette Suiten, Musterfilterung und Einzeldateitests. Sie interpretiert Bestanden/Durchgefallen/Übersprungen-Zählungen, um fehlschlagende Tests zu identifizieren, und ist für den Einsatz nach Codeänderungen, vor Commits oder zum Debuggen spezifischer Fehler konzipiert. Wichtige Merkmale umfassen den Verzicht auf die --vanilla-Option, um die renv-Kompatibilität über .Rprofile zu gewährleisten.

Schnellinstallation

Claude Code

Empfohlen
Primär
npx skills add pjt222/agent-almanac -a claude-code
Plugin-BefehlAlternativ
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativ
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/run-puzzle-tests

Kopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren

Dokumentation


name: run-puzzle-tests description: > WSL R実行経由でjigsawRテストスイートを実行する。フルスイート、 パターンによるフィルタリング、シングルファイルをサポート。 パス/フェイル/スキップカウントを解釈し、失敗テストを特定する。 --vanillaフラグは使用しない(renvは.Rprofileが有効化に必要)。 Rソースコードの変更後、新しいパズルタイプや機能の追加後、 コミット前の破壊確認、特定のテスト失敗のデバッグに使用する。 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: jigsawr complexity: basic language: R tags: jigsawr, testing, testthat, renv, wsl locale: ja source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16

パズルテストの実行

jigsawRテストスイートを実行し結果を解釈する。

使用タイミング

  • パッケージのRソースコードを変更した後
  • 新しいパズルタイプや機能を追加した後
  • コミット前に何も壊れていないことを確認する場合
  • 特定のテスト失敗をデバッグする場合

入力

  • 必須: テストスコープ(fullfiltered、またはsingle
  • 任意: フィルターパターン(filteredモード用、例:"snic""rectangular"
  • 任意: 特定のテストファイルパス(singleモード用)

手順

ステップ1: テストスコープの選択

スコープ使用場面所要時間
Fullコミット前、大きな変更後約2-5分
Filtered1つのパズルタイプでの作業中約30秒
Single特定のテストファイルのデバッグ約10秒

期待結果: 現在のワークフローに基づいてテストスコープが選択される:コミット前はフルスイート、特定のパズルタイプでの作業時はfiltered、1つのテストのデバッグ時はsingle。

失敗時: どのスコープを使用するか不明な場合は、フルスイートをデフォルトにする。時間はかかるがクロスタイプのリグレッションをキャッチできる。

ステップ2: テストスクリプトの作成と実行

フルスイート:

スクリプトファイルを作成する(例:/tmp/run_tests.R):

devtools::test()
R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
cd /mnt/d/dev/p/jigsawR && "$R_EXE" -e "devtools::test()"

パターンによるフィルタリング:

"$R_EXE" -e "devtools::test(filter = 'snic')"

シングルファイル:

"$R_EXE" -e "testthat::test_file('tests/testthat/test-snic-puzzles.R')"

期待結果: パス/フェイル/スキップカウントを含むテスト出力。

失敗時:

  • --vanillaフラグを使用しないこと。renvは.Rprofileが有効化に必要
  • renvエラーの場合、最初にrenv::restore()を実行する
  • Exit code 5で失敗する複雑なコマンドの場合、代わりにスクリプトファイルに書く

ステップ3: 結果の解釈

サマリー行を探す:

[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
  • PASS: 成功したテスト
  • FAIL: 失敗したテスト(調査が必要)
  • SKIP: スキップされたテスト(通常snicのようなオプションパッケージの欠如による)
  • WARN: テスト中の警告(レビューするがブロッキングではない)

期待結果: PASS、FAIL、SKIP、WARNカウントを特定するためにサマリー行が解析される。クリーンなテスト実行ではFAIL = 0。

失敗時: サマリー行が見えない場合、テストランナーが完了前にクラッシュした可能性がある。サマリーの上のR レベルエラーを確認する。出力が切り捨てられている場合、ファイルにリダイレクトする:"$R_EXE" -e "devtools::test()" > test_results.txt 2>&1

ステップ4: 失敗の調査

テストが失敗した場合:

  1. 失敗メッセージを読む — ファイル、行、期待値と実際の値が含まれる
  2. 新しい失敗か既存のものか確認する
  3. アサーション失敗の場合、テストとテスト対象の関数を読む
  4. エラー失敗の場合、関数シグネチャが変更されたか確認する
# 詳細出力で失敗テストのみを実行
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"

期待結果: 各失敗テストの根本原因が特定される。失敗は真のリグレッション(コードの修正が必要)かテスト環境の問題(依存関係の欠如、パスの問題)のいずれか。

失敗時: 失敗メッセージが不明確な場合、テストにbrowser()またはprint()ステートメントを追加し、対話的デバッグのためにtestthat::test_file()で再実行する。

ステップ5: スキップ理由の確認

オプション依存が欠落している場合のスキップされたテストは正常:

  • snicパッケージテストはskip_if_not_installed("snic")でスキップ
  • 特定のOSを必要とするテストはskip_on_os()でスキップ
  • CRAN専用スキップはskip_on_cran()

スキップ理由が正当であり、実際の失敗を隠していないことを確認する。

期待結果: すべてのスキップが正当な理由(オプション依存がインストールされていない、プラットフォーム固有のスキップ、CRAN専用スキップ)で説明される。実際のテスト失敗を隠すスキップはない。

失敗時: スキップが疑わしい場合、一時的にskip_if_*()呼び出しを削除してテストを実行し、パスするか隠れた失敗を明らかにするか確認する。

バリデーション

  • すべてのテストがパスする(FAIL = 0)
  • 予期しない警告がない
  • スキップカウントが期待値と一致する(オプション依存スキップのみ)
  • テストカウントが減少していない(テストが誤って削除されていない)

よくある落とし穴

  • --vanillaの使用: renvの有効化を破壊する。jigsawRでは絶対に使用しないこと。
  • 複雑な-e文字列: シェルエスケープの問題がExit code 5を引き起こす。スクリプトファイルを使用する。
  • 古いパッケージ状態: NAMESPACEに影響するコードを変更した場合、テスト前にdevtools::load_all()またはdevtools::document()を実行する。
  • テスト依存の欠如: 一部のテストにはsuggestedパッケージが必要。DESCRIPTIONのSuggestsフィールドを確認する。
  • 並列テストの問題: テストが干渉する場合、testthat::test_file()で順次実行する。

関連スキル

  • generate-puzzle — テストと動作が一致するか検証するためにパズルを生成する
  • add-puzzle-type — 新しいタイプには包括的なテストスイートが必要
  • write-testthat-tests — Rテスト記述の一般的なパターン
  • validate-piles-notation — フルスイートでPILES解析を独立してテストする

GitHub Repository

pjt222/agent-almanac
Pfad: i18n/ja/skills/run-puzzle-tests
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Verwandte Skills

evaluating-llms-harness

Testen

Diese Claude Skill führt den lm-evaluation-harness aus, um LLMs über 60+ standardisierte akademische Aufgaben wie MMLU und GSM8K zu benchmarken. Sie wurde für Entwickler entwickelt, um Modellqualität zu vergleichen, Trainingsfortschritt zu verfolgen oder akademische Ergebnisse zu berichten. Das Tool unterstützt verschiedene Backends, einschließlich HuggingFace- und vLLM-Modelle.

Skill ansehen

cloudflare-cron-triggers

Testen

Diese Fähigkeit bietet umfassendes Wissen zur Implementierung von Cloudflare Cron Triggers, um Workers mithilfe von Cron-Ausdrücken zu planen. Sie behandelt das Einrichten periodischer Aufgaben, Wartungsjobs und automatisierter Workflows, während häufige Probleme wie ungültige Cron-Ausdrücke und Zeitzonenprobleme behandelt werden. Entwickler können sie zum Konfigurieren geplanter Handler, zum Testen von Cron-Triggers und zur Integration mit Workflows und Green Compute verwenden.

Skill ansehen

webapp-testing

Testen

Diese Claude Skill bietet ein Playwright-basiertes Toolkit zum Testen lokaler Webanwendungen durch Python-Skripte. Es ermöglicht Frontend-Verifizierung, UI-Debugging, Screenshot-Aufnahme und Log-Einblick bei gleichzeitiger Verwaltung von Server-Lebenszyklen. Nutzen Sie es für Browser-Automatisierungsaufgaben, führen Sie Skripte jedoch direkt aus, anstatt deren Quellcode zu lesen, um Kontextverschmutzung zu vermeiden.

Skill ansehen

finishing-a-development-branch

Testen

Diese Fähigkeit unterstützt Entwickler dabei, abgeschlossene Arbeiten zu finalisieren, indem sie testet, ob Tests bestehen, und dann strukturierte Integrationsoptionen präsentiert. Sie leitet den Workflow für das Zusammenführen von Code, das Erstellen von PRs oder das Bereinigen von Branches nach Abschluss der Implementierung. Nutzen Sie sie, wenn Ihr Code bereit und getestet ist, um den Entwicklungsprozess systematisch abzuschließen.

Skill ansehen