MCP HubMCP Hub
Retour aux compétences

run-puzzle-tests

pjt222
Mis à jour 5 days ago
9 vues
17
2
17
Voir sur GitHub
Testsaitestingdesign

À propos

Cette compétence exécute la suite de tests jigsawR via l'exécution de R sous WSL, prenant en charge les tests complets, les motifs filtrés ou les fichiers individuels. Elle interprète les décomptes de réussite/échec/saut et identifie les tests en échec tout en préservant la compatibilité renv en évitant le drapeau --vanilla. Utilisez-la après des modifications de code, avant des commits, ou lors du débogage d'échecs de tests spécifiques pour garantir qu'aucune fonctionnalité n'est endommagée.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/run-puzzle-tests

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

執行拼圖測試

執行 jigsawR 測試套件並解讀結果。

適用時機

  • 修改套件中任何 R 源碼後
  • 新增拼圖類型或功能後
  • 提交變更前以確認無故障
  • 對特定測試失敗進行除錯

輸入

  • 必要:測試範圍(fullfilteredsingle
  • 選擇性:過濾模式(用於 filtered 模式,如 "snic""rectangular"
  • 選擇性:特定測試文件路徑(用於 single 模式)

步驟

步驟一:選擇測試範圍

範圍適用時機時長
Full提交前、重大變更後約 2-5 分
Filtered處理單一拼圖類型約 30 秒
Single對特定測試文件除錯約 10 秒

預期: 依當前工作流程選擇測試範圍:提交前用全套件、處理特定拼圖類型時用過濾、除錯單一測試時用單文件。

失敗時: 若不確定用何範圍,預設用全套件。較久但可捕跨類型回歸。

步驟二:建立並執行測試腳本

全套件

建立腳本文件(如 /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 失敗,改寫至腳本文件

步驟三:解讀結果

尋找摘要行:

[ 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

步驟四:調查失敗

若測試失敗:

  1. 讀失敗訊息——其含文件、行與預期 vs 實際
  2. 檢查為新失敗或既有
  3. 對斷言失敗,讀測試與被測函數
  4. 對錯誤失敗,檢查函數簽章是否變更
# Run just the failing test with verbose output
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"

預期: 各失敗測試之根因已識別。失敗或為真實回歸(代碼需修)或為測試環境問題(缺依賴、路徑問題)。

失敗時: 若失敗訊息不清,於測試中加入 browser()print() 語句並以 testthat::test_file() 重新執行作互動除錯。

步驟五:驗證跳過原因

當缺選擇性依賴時跳過測試屬正常:

  • snic 套件測試以 skip_if_not_installed("snic") 跳過
  • 須特定 OS 之測試以 skip_on_os() 跳過
  • 僅 CRAN 之跳過以 skip_on_cran()

確認跳過原因合理,未掩蓋真實失敗。

預期: 所有跳過皆有合理理由(選擇性依賴未安裝、平台特定跳過、僅 CRAN 跳過)。無跳過掩蓋實際測試失敗。

失敗時: 若某跳過可疑,暫時移除 skip_if_*() 呼叫並執行測試以見其通過或揭露隱藏失敗。

驗證

  • 所有測試通過(FAIL = 0)
  • 無非預期警告
  • 跳過計數符合預期(僅選擇性依賴之跳過)
  • 測試計數未減少(無測試誤刪)

常見陷阱

  • 使用 --vanilla:破壞 renv 啟動。對 jigsawR 切勿用之。
  • 複雜 -e 字串:Shell 跳脫問題引發 Exit code 5。改用腳本文件。
  • 過時之套件狀態:若變更 NAMESPACE 影響之代碼,測試前執行 devtools::load_all()devtools::document()
  • 缺測試依賴:部分測試需建議套件。檢查 DESCRIPTION 之 Suggests 欄。
  • 平行測試問題:若測試相互干擾,以 testthat::test_file() 順序執行。

相關技能

  • generate-puzzle — 產生拼圖以驗證行為符合測試
  • add-puzzle-type — 新類型需全面測試套件
  • write-testthat-tests — 撰寫 R 測試之通用模式
  • validate-piles-notation — 獨立測試 PILES 解析

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/wenyan-lite/skills/run-puzzle-tests
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Compétences associées

evaluating-llms-harness

Tests

Cette compétence Claude exécute le lm-evaluation-harness pour évaluer les modèles de langage sur plus de 60 tâches académiques standardisées telles que MMLU et GSM8K. Elle est conçue pour permettre aux développeurs de comparer la qualité des modèles, de suivre les progrès de l'entraînement ou de rapporter des résultats académiques. L'outil prend en charge différents backends, incluant les modèles HuggingFace et vLLM.

Voir la compétence

cloudflare-cron-triggers

Tests

Cette compétence fournit une connaissance complète pour la mise en œuvre de Déclencheurs Cron Cloudflare afin de planifier des Workers à l'aide d'expressions cron. Elle couvre la configuration de tâches périodiques, de travaux de maintenance et de flux de travail automatisés, tout en traitant des problèmes courants tels que les expressions cron non valides et les problèmes de fuseau horaire. Les développeurs peuvent l'utiliser pour configurer des gestionnaires planifiés, tester des déclencheurs cron et intégrer avec Workflows et Green Compute.

Voir la compétence

webapp-testing

Tests

Cette Compétence Claude fournit une boîte à outils basée sur Playwright pour tester des applications web locales via des scripts Python. Elle permet la vérification frontend, le débogage d'interface utilisateur, la capture d'écrans et la consultation des journaux, tout en gérant les cycles de vie du serveur. Utilisez-la pour les tâches d'automatisation de navigateur, mais exécutez les scripts directement plutôt que de lire leur code source pour éviter la pollution du contexte.

Voir la compétence

finishing-a-development-branch

Tests

Cette compétence aide les développeurs à finaliser leur travail en vérifiant que les tests passent, puis en présentant des options d'intégration structurées. Elle guide le processus de fusion, de création de PRs ou de nettoyage des branches une fois l'implémentation terminée. Utilisez-la lorsque votre code est prêt et testé pour finaliser systématiquement le cycle de développement.

Voir la compétence