Skip to content

bun test admite diferentes formatos de salida a través de reporteros. Este documento cubre tanto los reporteros integrados como cómo implementar tus propios reporteros personalizados.


Reporteros integrados ​

Reportero de consola por defecto ​

Por defecto, bun test genera resultados a la consola en un formato legible:

sh
test/package-json-lint.test.ts:
✓ test/package.json [0.88ms]
✓ test/js/third_party/grpc-js/package.json [0.18ms]
✓ test/js/third_party/svelte/package.json [0.21ms]
✓ test/js/third_party/express/package.json [1.05ms]

 4 pass
 0 fail
 4 expect() calls
Ran 4 tests in 1.44ms

Cuando un terminal no soporta colores, la salida evita caracteres no ascii:

sh
test/package-json-lint.test.ts:
(pass) test/package.json [0.48ms]
(pass) test/js/third_party/grpc-js/package.json [0.10ms]
(pass) test/js/third_party/svelte/package.json [0.04ms]
(pass) test/js/third_party/express/package.json [0.04ms]

 4 pass
 0 fail
 4 expect() calls
Ran 4 tests across 1 files. [0.66ms]

Reportero de puntos ​

El reportero de puntos muestra . para pruebas aprobadas y F para fallos, útil para suites de pruebas grandes.

sh
bun test --dots
bun test --reporter=dots

Reportero JUnit XML ​

Para entornos CI/CD, Bun admite generar informes JUnit XML. JUnit XML es un formato ampliamente adoptado para resultados de pruebas que puede ser analizado por muchos sistemas CI/CD, incluyendo GitLab, Jenkins y otros.

Usando el reportero JUnit ​

Para generar un informe JUnit XML, usa la bandera --reporter=junit junto con --reporter-outfile para especificar el archivo de salida:

sh
bun test --reporter=junit --reporter-outfile=./junit.xml

Esto continúa generando salida a la consola como de costumbre mientras también escribe el informe JUnit XML a la ruta especificada al final de la ejecución de pruebas.

Configurar vía bunfig.toml ​

También puedes configurar el reportero JUnit en tu archivo bunfig.toml:

bunfig.toml
toml
[test.reporter]
junit = "path/to/junit.xml"  # Ruta de salida para informe XML JUnit

Variables de entorno en informes JUnit ​

El reportero JUnit automáticamente incluye información del entorno como <properties> en la salida XML. Esto puede ser útil para rastrear ejecuciones de pruebas en entornos CI.

Específicamente, incluye las siguientes variables de entorno cuando están disponibles:

Variable de entornoNombre de propiedadDescripción
GITHUB_RUN_ID, GITHUB_SERVER_URL, GITHUB_REPOSITORY, CI_JOB_URLciInformación de compilación CI
GITHUB_SHA, CI_COMMIT_SHA, GIT_SHAcommitIdentificadores de commit Git
Nombre de host del sistemahostnameNombre de host de la máquina

Esto facilita rastrear para qué entorno y commit fue una ejecución de prueba particular.

Limitaciones actuales ​

El reportero JUnit actualmente tiene algunas limitaciones que se abordarán en actualizaciones futuras:

  • La salida stdout y stderr de pruebas individuales no se incluye en el informe
  • Los campos de marca de tiempo precisos por caso de prueba no se incluyen

Reportero de GitHub Actions ​

Bun test detecta automáticamente cuando se está ejecutando dentro de GitHub Actions y emite anotaciones de GitHub Actions directamente a la consola. No se necesita configuración especial más allá de instalar Bun y ejecutar bun test.

Para un ejemplo de configuración de workflow de GitHub Actions, consulta la sección de integración CI/CD de la documentación de CLI.


Reporteros personalizados ​

Bun permite a los desarrolladores implementar reporteros de pruebas personalizados extendiendo el Protocolo Inspector de WebKit con dominios específicos de pruebas adicionales.

Protocolo Inspector para pruebas ​

Para soportar reportes de pruebas, Bun extiende el Protocolo Inspector de WebKit estándar con dos dominios personalizados:

  1. TestReporter: Reporta descubrimiento de pruebas, inicio de ejecución y eventos de finalización
  2. LifecycleReporter: Reporta errores y excepciones durante la ejecución de pruebas

Estas extensiones te permiten construir herramientas de reporte personalizadas que pueden recibir información detallada sobre la ejecución de pruebas en tiempo real.

Eventos clave ​

Los reporteros personalizados pueden escuchar estos eventos clave:

  • TestReporter.found: Se emite cuando se descubre una prueba
  • TestReporter.start: Se emite cuando una prueba comienza a ejecutarse
  • TestReporter.end: Se emite cuando una prueba se completa
  • Console.messageAdded: Se emite cuando ocurre salida de consola durante una prueba
  • LifecycleReporter.error: Se emite cuando ocurre un error o excepción

Bun por www.bunjs.com.cn editar