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