协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
run-puzzle-tests【开发与工程】Ejecutar la suite de pruebas de jigsawR mediante ejecucion R en WSL. Soporta suite completa, filtrada por patron o archivo individual. Interpreta conteos de pases/fallos/omisiones e identifica pruebas fallidas. Nunca usa la bandera --vanilla (renv necesita .Rprofile para activacion). Usar despues de modificar cualquier codigo fuente R, despues de agr…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Ejecutar la suite de pruebas de jigsawR e interpretar resultados.
full, filtered o single)"snic", "rectangular")| Alcance | Usar cuando | Duracion |
|---|---|---|
| Full | Antes de commits, despues de cambios importantes | ~2-5 min |
| Filtered | Trabajando en un tipo de rompecabezas | ~30s |
| Single | Depurando un archivo de prueba especifico | ~10s |
Esperado: Alcance de pruebas seleccionado segun el flujo de trabajo actual: suite completa antes de commits, filtrada al trabajar en un tipo de rompecabezas especifico, archivo individual al depurar una prueba.
En caso de fallo: Si no esta seguro de que alcance usar, usar suite completa por defecto. Toma mas tiempo pero detecta regresiones entre tipos.
Suite completa:
Crear un archivo de script (ej., /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()"
Filtrado por patron:
"$R_EXE" -e "devtools::test(filter = 'snic')"
Archivo individual:
"$R_EXE" -e "testthat::test_file('tests/testthat/test-snic-puzzles.R')"
Esperado: Salida de pruebas con conteos de pases/fallos/omisiones.
En caso de fallo:
--vanilla; renv necesita .Rprofile para activarserenv::restore() primeroBuscar la linea de resumen:
[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
snic)Esperado: La linea de resumen analizada para identificar conteos PASS, FAIL, SKIP y WARN. FAIL = 0 para una ejecucion de pruebas limpia.
En caso de fallo: Si la linea de resumen no es visible, el ejecutor de pruebas puede haberse detenido antes de completar. Verificar errores a nivel de R sobre el resumen. Si la salida esta truncada, redirigir a un archivo: "$R_EXE" -e "devtools::test()" > test_results.txt 2>&1.
Si las pruebas fallan:
# Run just the failing test with verbose output
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"
Esperado: Causa raiz de cada prueba fallida identificada. El fallo es una regresion genuina (el codigo necesita correccion) o un problema del entorno de pruebas (dependencia faltante, problema de ruta).
En caso de fallo: Si el mensaje de fallo no es claro, agregar sentencias browser() o print() a la prueba y re-ejecutar con testthat::test_file() para depuracion interactiva.
Las pruebas omitidas son normales cuando faltan dependencias opcionales:
snic se omiten con skip_if_not_installed("snic")skip_on_os()skip_on_cran()Confirmar que las razones de omision son legitimas, no enmascaran fallos reales.
Esperado: Todas las omisiones se explican por razones legitimas (dependencia opcional no instalada, omision especifica de plataforma, omision solo para CRAN). Ninguna omision enmascara fallos de prueba reales.
En caso de fallo: Si una omision parece sospechosa, eliminar temporalmente la llamada skip_if_*() y ejecutar la prueba para ver si pasa o revela un fallo oculto.
--vanilla: Rompe la activacion de renv. Nunca usarlo con jigsawR.-e complejas: Problemas de escape del shell causan codigo de salida 5. Usar archivos de script.devtools::load_all() o devtools::document() antes de probar si cambio codigo que afecta el NAMESPACE.DESCRIPTION.testthat::test_file().generate-puzzle -- generar rompecabezas para verificar que el comportamiento coincide con las pruebasadd-puzzle-type -- los nuevos tipos necesitan suites de pruebas completaswrite-testthat-tests -- patrones generales para escribir pruebas Rvalidate-piles-notation -- probar el analisis PILES independientemente