인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
개발 및 엔지니어링 · SKILL.md

run-puzzle-tests

run-puzzle-tests

Run jigsawR test suite via WSL R. Full|filtered|single. Interpret pass/fail/skip + identify fails. Never `--vanilla` (renv needs `.Rprofile`). Use → post-R-edit, post-new-type, pre-commit verify, debug fail.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: run-puzzle-tests locale: caveman-ultra source_locale: en source_commit: 82c77053 fence_basis_commit: 82c77053 translator: "Julius Brussee homage — caveman" translation_date: "2026-05-03" description: > Run jigsawR test suite via WSL R. Full|filtered|single. Interpret pass/fail/skip + identify fails. Never --vanilla (renv needs .Rprofile). Use → post-R-edit, post-new-type, pre-commit verify, debug fail. 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

Run Puzzle Tests

Run jigsawR test suite + interpret results.

Use When

  • Post any R src edit
  • Post new puzzle type|feature
  • Pre-commit → verify nothing broke
  • Debug specific fail

In

  • Required: Scope (full|filtered|single)
  • Optional: Filter pattern ("snic", "rectangular")
  • Optional: Test file path (single mode)

Do

Step 1: Choose Scope

ScopeUse whenDuration
FullBefore commits, after major changes~2-5 min
FilteredWorking on one puzzle type~30s
SingleDebugging a specific test file~10s

→ Scope chosen by workflow: full pre-commit, filtered for type work, single for debug.

If err: unsure → default full. Slower but catches cross-type regressions.

Step 2: Create+Exec Test Script

Full:

Create /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()"

Filtered:

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

Single:

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

→ Test out w/ pass/fail/skip.

If err:

  • NEVER --vanilla; renv needs .Rprofile
  • renv errs → renv::restore() first
  • Complex cmds fail Exit 5 → write script file

Step 3: Interpret Results

Summary line:

[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
  • PASS: Succeeded
  • FAIL: Need investigation
  • SKIP: Skipped (missing optional pkg like snic)
  • WARN: Warns (review, not blocking)

→ Summary parsed → PASS, FAIL, SKIP, WARN counts. FAIL=0 = clean.

If err: no summary → runner crashed pre-complete. Check R errs above. Output truncated → redirect: "$R_EXE" -e "devtools::test()" > test_results.txt 2>&1.

Step 4: Investigate Fails

If fail:

  1. Read msg → file, line, expected vs actual
  2. New fail or pre-existing?
  3. Assertion → read test + tested fn
  4. Error → check fn signature changed?
# Run just the failing test with verbose output
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"

→ Root cause id'd. Real regression (fix code) or env issue (dep, path).

If err: msg unclear → add browser()|print() + re-run via testthat::test_file() for interactive debug.

Step 5: Verify Skip Reasons

Skips normal when optional deps missing:

  • snic → skip_if_not_installed("snic")
  • OS-specific → skip_on_os()
  • CRAN-only → skip_on_cran()

Confirm legitimate, not masking real fails.

→ All skips accounted by legit reasons. None mask actual fails.

If err: skip suspicious → temp remove skip_if_*() + run → see if pass or hidden fail.

Check

  • All pass (FAIL=0)
  • No unexpected warns
  • Skip matches expected (only optional dep skips)
  • Test count not decreased (no accidentally removed)

Traps

  • --vanilla: Breaks renv. Never w/ jigsawR.
  • Complex -e strings: Shell escape → Exit 5. Use script files.
  • Stale pkg state: Run devtools::load_all()|document() before test if NAMESPACE changed.
  • Missing test deps: Some need Suggests pkgs. Check DESCRIPTION.
  • Parallel issues: Tests interfere → run sequential w/ testthat::test_file().

→

  • generate-puzzle — gen puzzles → verify behavior matches tests
  • add-puzzle-type — new types need comprehensive suites
  • write-testthat-tests — general R test patterns
  • validate-piles-notation — test PILES parse standalone
저장한 Skills