协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
run-puzzle-tests【开发与工程】Die jigsawR-Testsuite ueber WSL-R-Ausfuehrung starten. Unterstuetzt vollstaendige Suite, nach Muster gefiltert oder einzelne Datei. Interpretiert Bestanden/Fehlgeschlagen/Uebersprungen-Zaehler und identifiziert fehlschlagende Tests. Verwendet niemals das --vanilla-Flag (renv braucht .Rprofile fuer die Aktivierung). Anwenden nach Aenderung von R-Quell…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Die jigsawR-Testsuite ausfuehren und Ergebnisse interpretieren.
full, filtered oder single)"snic", "rectangular")| Umfang | Verwenden wenn | Dauer |
|---|---|---|
| Voll | Vor Commits, nach grossen Aenderungen | ~2-5 Min |
| Gefiltert | Arbeit an einem Puzzle-Typ | ~30s |
| Einzeln | Debuggen einer spezifischen Testdatei | ~10s |
Erwartet: Testumfang basierend auf dem aktuellen Arbeitsablauf ausgewaehlt: vollstaendige Suite vor Commits, gefiltert bei Arbeit an einem bestimmten Puzzle-Typ, einzelne Datei beim Debuggen eines Tests.
Bei Fehler: Im Zweifelsfall welcher Umfang zu verwenden ist, standardmaessig die vollstaendige Suite ausfuehren. Es dauert laenger, faengt aber typuebergreifende Regressionen ab.
Vollstaendige Suite:
Eine Skriptdatei erstellen (z.B. /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()"
Nach Muster gefiltert:
"$R_EXE" -e "devtools::test(filter = 'snic')"
Einzelne Datei:
"$R_EXE" -e "testthat::test_file('tests/testthat/test-snic-puzzles.R')"
Erwartet: Testausgabe mit Bestanden/Fehlgeschlagen/Uebersprungen-Zaehlern.
Bei Fehler:
--vanilla-Flag verwenden; renv braucht .Rprofile fuer die Aktivierungrenv::restore() ausfuehrenDie Zusammenfassungszeile suchen:
[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
snic)Erwartet: Die Zusammenfassungszeile geparst um PASS-, FAIL-, SKIP- und WARN-Zaehler zu identifizieren. FAIL = 0 fuer einen sauberen Testlauf.
Bei Fehler: Wenn die Zusammenfassungszeile nicht sichtbar ist, ist der Test-Runner moeglicherweise vor Abschluss abgestuerzt. Auf R-Fehler oberhalb der Zusammenfassung pruefen. Wenn die Ausgabe abgeschnitten ist, in eine Datei umleiten: "$R_EXE" -e "devtools::test()" > test_results.txt 2>&1.
Wenn Tests fehlschlagen:
# Run just the failing test with verbose output
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"
Erwartet: Grundursache jedes fehlschlagenden Tests identifiziert. Der Fehler ist entweder eine echte Regression (Code muss korrigiert werden) oder ein Testumgebungsproblem (fehlende Abhaengigkeit, Pfadproblem).
Bei Fehler: Wenn die Fehlermeldung unklar ist, browser()- oder print()-Anweisungen zum Test hinzufuegen und mit testthat::test_file() fuer interaktives Debugging erneut ausfuehren.
Uebersprungene Tests sind normal wenn optionale Abhaengigkeiten fehlen:
snic-Pakettests ueberspringen mit skip_if_not_installed("snic")skip_on_os()skip_on_cran()Bestaetigen dass die Gruende fuer das Ueberspringen berechtigt sind und keine echten Fehler verbergen.
Erwartet: Alle uebersprungenen Tests sind durch berechtigte Gruende abgedeckt (optionale Abhaengigkeit nicht installiert, plattformspezifisches Ueberspringen, Nur-CRAN-Ueberspringen). Keine uebersprungenen Tests verbergen tatsaechliche Testfehler.
Bei Fehler: Wenn ein Ueberspringen verdaechtig erscheint, den skip_if_*()-Aufruf voruebergehend entfernen und den Test ausfuehren um zu sehen ob er besteht oder einen versteckten Fehler offenbart.
--vanilla verwenden: Bricht die renv-Aktivierung ab. Niemals mit jigsawR verwenden.-e-Zeichenketten: Shell-Escaping-Probleme verursachen Exit-Code 5. Skriptdateien verwenden.devtools::load_all() oder devtools::document() vor dem Testen ausfuehren wenn NAMESPACE-beeinflussender Code geaendert wurde.Suggests-Feld in DESCRIPTION pruefen.testthat::test_file() ausfuehren.generate-puzzle — Puzzles generieren um zu verifizieren dass das Verhalten den Tests entsprichtadd-puzzle-type — neue Typen brauchen umfassende Testsuitenwrite-testthat-tests — allgemeine Muster zum Schreiben von R-Testsvalidate-piles-notation — PILES-Parsing unabhaengig testen