Skip to content
Back to skills

Run Puzzle Tests

ASecurity

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 agregar un nuevo tipo de rompecabezas o caracteristica, antes de confirmar cambios para verificar que nada esta roto, o al depurar un fallo de prueb...

  • 31 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 29, 2026
ai-agentsgoshellbashangulartestinggit

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add pjt222/agent-almanac --skill run-puzzle-tests --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Run Puzzle Tests?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Run Puzzle Tests
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pjt222-run-puzzle-tests/badge)](https://www.skillsdirectory.com/skills/pjt222-run-puzzle-tests)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: run-puzzle-tests
description: >
  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 agregar un nuevo tipo de rompecabezas o caracteristica, antes de
  confirmar cambios para verificar que nada esta roto, o al depurar un
  fallo de prueba especifico.
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: es
  source_locale: en
  source_commit: 6f65f316
  translator: claude-sonnet-4-6
  translation_date: 2026-03-16
---

# Ejecutar Pruebas de Rompecabezas

Ejecutar la suite de pruebas de jigsawR e interpretar resultados.

## Cuando Usar

- Despues de modificar cualquier codigo fuente R en el paquete
- Despues de agregar un nuevo tipo de rompecabezas o caracteristica
- Antes de confirmar cambios para verificar que nada esta roto
- Depurar un fallo de prueba especifico

## Entradas

- **Requerido**: Alcance de pruebas (`full`, `filtered` o `single`)
- **Opcional**: Patron de filtro (para modo filtrado, ej. `"snic"`, `"rectangular"`)
- **Opcional**: Ruta especifica del archivo de prueba (para modo individual)

## Procedimiento

### Paso 1: Elegir Alcance de Pruebas

| 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.

### Paso 2: Crear y Ejecutar Script de Prueba

**Suite completa**:

Crear un archivo de script (ej., `/tmp/run_tests.R`):

```r
devtools::test()
```

```bash
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**:

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

**Archivo individual**:

```bash
"$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:**
- NO usar la bandera `--vanilla`; renv necesita `.Rprofile` para activarse
- Si hay errores de renv, ejecutar `renv::restore()` primero
- Para comandos complejos que fallan con codigo de salida 5, escribir en un archivo de script

### Paso 3: Interpretar Resultados

Buscar la linea de resumen:

```
[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
```

- **PASS**: Pruebas exitosas
- **FAIL**: Pruebas fallidas (necesitan investigacion)
- **SKIP**: Pruebas omitidas (generalmente por paquetes opcionales faltantes como `snic`)
- **WARN**: Advertencias durante pruebas (revisar pero no bloquean)

**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`.

### Paso 4: Investigar Fallos

Si las pruebas fallan:

1. Leer el mensaje de fallo -- incluye archivo, linea y esperado vs real
2. Verificar si es un fallo nuevo o preexistente
3. Para fallos de asercion, leer la prueba y la funcion siendo probada
4. Para fallos de error, verificar si cambio una firma de funcion

```bash
# 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.

### Paso 5: Verificar Razones de Omision

Las pruebas omitidas son normales cuando faltan dependencias opcionales:

- Las pruebas del paquete `snic` se omiten con `skip_if_not_installed("snic")`
- Las pruebas que requieren un SO especifico se omiten con `skip_on_os()`
- Omisiones solo para CRAN con `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.

## Validacion

- [ ] Todas las pruebas pasan (FAIL = 0)
- [ ] Sin advertencias inesperadas
- [ ] El conteo de omisiones coincide con lo esperado (solo omisiones de dependencias opcionales)
- [ ] El conteo de pruebas no ha disminuido (ninguna prueba eliminada accidentalmente)

## Errores Comunes

- **Usar `--vanilla`**: Rompe la activacion de renv. Nunca usarlo con jigsawR.
- **Cadenas `-e` complejas**: Problemas de escape del shell causan codigo de salida 5. Usar archivos de script.
- **Estado del paquete obsoleto**: Ejecutar `devtools::load_all()` o `devtools::document()` antes de probar si cambio codigo que afecta el NAMESPACE.
- **Dependencias de prueba faltantes**: Algunas pruebas necesitan paquetes sugeridos. Verificar el campo Suggests de `DESCRIPTION`.
- **Problemas de pruebas paralelas**: Si las pruebas interfieren, ejecutar secuencialmente con `testthat::test_file()`.

## Habilidades Relacionadas

- `generate-puzzle` -- generar rompecabezas para verificar que el comportamiento coincide con las pruebas
- `add-puzzle-type` -- los nuevos tipos necesitan suites de pruebas completas
- `write-testthat-tests` -- patrones generales para escribir pruebas R
- `validate-piles-notation` -- probar el analisis PILES independientemente

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.