Código abierto · MIT · v1.0.0

Tus tests, en una app de escritorio

Abre cualquier proyecto JavaScript o TypeScript y ejecuta sus tests unitarios, de integración y E2E sin tocar la terminal. Resultados en tiempo real, watch mode y consola integrada.

Windows · macOS · Linux — sin registro, sin telemetría

Ventana de Test Runner mostrando el explorador de tests y la salida de un test que ha pasado
  • 6frameworks soportados
  • 3sistemas operativos
  • 0configuración necesaria
  • MITlicencia libre

Cómo funciona

  1. 1

    Selecciona tu proyecto

    Elige la carpeta raíz y la app escanea en busca de archivos de test, ignorando node_modules.

  2. 2

    Ejecuta con doble clic

    Cada test se lanza con el script de tu package.json, así que respeta tu configuración.

  3. 3

    Lee los resultados

    Salida estándar y errores formateados, contadores en vivo y consola con todo el log.

¿Listo para probarla?

Instaladores firmados para Windows, macOS y Linux. Pesa menos de 120 MB.

Ir a descargas

Características

Todo lo que necesitas para pasar del «¿por qué falla este test?» al arreglo, sin cambiar de ventana.

🔍

Explorador inteligente

Detecta automáticamente *.test.js, *.spec.ts, *.e2e.js e *.integration.js en todo el árbol del proyecto.

⚡

Ejecución con un clic

Doble clic o Enter sobre un test. Se ejecuta con el runner que ya usa tu proyecto.

👁️

Watch mode

Vigila los archivos con Chokidar y te avisa en cuanto cambia un test, listo para relanzarlo.

📊

Resultados en vivo

Contadores de pasados, fallados y en ejecución, más indicadores de estado por archivo.

🎛️

Filtros por tipo

Muestra solo unitarios, E2E o de integración para centrarte en lo que estás tocando.

🖥️

Consola integrada

Todo el stdout y stderr con marca de tiempo y colores por severidad.

Frameworks soportados

Test Runner no reimplementa ningún runner: invoca el script test, test:unit o test:e2e de tu package.json. Si funciona en tu terminal, funciona aquí.

  • Jest
  • Mocha
  • Vitest
  • Cypress
  • Playwright
  • node:test
  • …y cualquier otro

Atajos de teclado

Atajo Acción
Ctrl/Cmd + O Abrir proyecto
Ctrl/Cmd + W Activar o desactivar watch mode
Ctrl/Cmd + L Limpiar la consola
Enter Ejecutar el test seleccionado

Capturas

Capturas reales de la aplicación ejecutando un proyecto de ejemplo con tests unitarios, de integración y E2E. Haz clic para ampliar.

Descargas

Última versión: v1.0.0

Windows

Instalador .exe · 64 bits

Descargar

~91 MB

macOS

Imagen .dmg · Apple Silicon

Descargar

~105 MB

Linux

Ejecutable .AppImage

Descargar

~112 MB

¿Prefieres ver todos los archivos? Todas las versiones en GitHub.

Notas de instalación

🪟 Windows

SmartScreen puede avisar de que el editor es desconocido porque el instalador no está firmado. Pulsa Más información → Ejecutar de todas formas.

🍎 macOS

Si Gatekeeper bloquea la app, ábrela con clic derecho → Abrir, o ejecuta xattr -cr "/Applications/Test Runner.app".

🐧 Linux

Dale permisos de ejecución al AppImage: chmod +x Test.Runner-1.0.0.AppImage y lánzalo con doble clic.

Compilar desde el código

git clone https://github.com/cmurestudillos/test-runner.git
cd test-runner
pnpm install

pnpm start           # ejecutar en desarrollo
pnpm package:win     # generar instalador de Windows
pnpm package:mac     # generar imagen de macOS
pnpm package:linux   # generar AppImage

Requisitos: Node.js 22+ y pnpm 11+.

Documentación

Guía de uso

1. Seleccionar proyecto

Pulsa 📁 Seleccionar Proyecto (o Ctrl+O) y elige la carpeta raíz. La app recorre el árbol ignorando node_modules y carpetas ocultas.

2. Ejecutar tests

Un clic selecciona el archivo; un doble clic lo ejecuta. Con un test seleccionado, Enter hace lo mismo. Test Runner lanza npm test <ruta>, o npm run test:e2e / npm run test:unit si tu package.json define esos scripts.

3. Watch mode

Con Ctrl+W activas el vigilante de archivos. Cada vez que guardes un test, la consola te lo indica para que lo relances.

4. Filtrar

Las casillas Unitarios, E2E e Integración filtran el árbol al vuelo.

Cómo se detectan los tests

Patrón del archivo Tipo asignado
*.test.js · *.test.ts(x) Unitario
*.spec.js · *.spec.ts(x) Unitario
*.integration.js · *.integration.ts Integración
*.e2e.js · nombres con cypress, playwright o webdriver E2E

Arquitectura

src/
├── main.js       # proceso principal: escaneo, ejecución y watchers
├── preload.js    # puente IPC seguro (contextIsolation activo)
├── renderer.js   # estado e interfaz
├── index.html    # estructura de la ventana
└── assets/       # estilos e iconos

Construida con Electron, Chokidar para el watch mode y fs-extra para el sistema de archivos. Sin frameworks de UI: HTML, CSS y JavaScript.

Roadmap

  • v1.1 Tema claro y oscuro, exportar informes, cobertura de Jest, configuración persistente
  • v1.2 Sistema de plugins, integración con GitHub Actions, tests en paralelo
  • v2.0 Editor de tests integrado, depuración visual, sincronización en la nube

Contribuir

Los issues y pull requests son bienvenidos. Abre un issue describiendo el bug (con pasos, sistema operativo y captura) o la funcionalidad que echas de menos.