MCP HubMCP Hub
Volver a habilidades

run-puzzle-tests

pjt222
Actualizado 2 days ago
6 vistas
17
2
17
Ver en GitHub
Pruebastesting

Acerca de

Esta habilidad ejecuta el conjunto de pruebas de jigsawR mediante WSL R, admitiendo suites completas, filtrado por patrones y pruebas de archivos individuales. Interpreta los conteos de aprobado/fallado/omitido para identificar pruebas fallidas y está diseñada para usarse después de cambios en el código, antes de confirmaciones o para depurar fallos específicos. Las características clave incluyen no usar el indicador --vanilla para mantener la compatibilidad con renv a través de .Rprofile.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/run-puzzle-tests

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación


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解析を独立してテストする

Repositorio GitHub

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

Habilidades relacionadas

evaluating-llms-harness

Pruebas

Esta Skill de Claude ejecuta el benchmark lm-evaluation-harness para evaluar modelos de lenguaje en más de 60 tareas académicas estandarizadas como MMLU y GSM8K. Está diseñada para que los desarrolladores comparen la calidad de los modelos, realicen seguimiento del progreso del entrenamiento o reporten resultados académicos. La herramienta admite varios backends, incluidos modelos de HuggingFace y vLLM.

Ver habilidad

cloudflare-cron-triggers

Pruebas

Esta habilidad proporciona conocimiento integral para implementar Cron Triggers de Cloudflare y programar Workers mediante expresiones cron. Cubre la configuración de tareas periódicas, trabajos de mantenimiento y flujos de trabajo automatizados, manejando problemas comunes como expresiones cron inválidas y inconvenientes de zonas horarias. Los desarrolladores pueden utilizarla para configurar manejadores programados, probar activadores cron e integrar con Workflows y Green Compute.

Ver habilidad

webapp-testing

Pruebas

Esta habilidad de Claude proporciona un kit de herramientas basado en Playwright para probar aplicaciones web locales mediante scripts de Python. Permite verificación de frontend, depuración de interfaz de usuario, captura de pantallas y visualización de registros, mientras gestiona los ciclos de vida del servidor. Úsela para tareas de automatización de navegadores, pero ejecute los scripts directamente en lugar de leer su código fuente para evitar contaminación del contexto.

Ver habilidad

finishing-a-development-branch

Pruebas

Esta habilidad ayuda a los desarrolladores a completar el trabajo terminado verificando que las pruebas pasen y luego presentando opciones estructuradas de integración. Guía el flujo de trabajo para fusionar, crear PRs o limpiar ramas después de que se completa la implementación. Úsala cuando tu código esté listo y probado para finalizar sistemáticamente el proceso de desarrollo.

Ver habilidad