Configuración de Allure Bun
El comportamiento de la integración de Allure Bun puede configurarse a través de globalThis.allureBunConfig o la variable de entorno ALLURE_BUN_CONFIG.
Proveer configuración
Usar un archivo preload personalizado
Usa un archivo preload personalizado cuando necesites valores de configuración que no puedan representarse como JSON — por ejemplo, funciones listener o funciones de plantilla de enlaces. El archivo preload personalizado debe importar allure-bun/setup después de establecer la configuración:
// preload.ts
import { Status } from "allure-js-commons";
import type { ReporterConfig } from "allure-js-commons/sdk/reporter";
import * as os from "node:os";
globalThis.allureBunConfig = {
resultsDir: "allure-results",
links: {
issue: {
nameTemplate: "Issue #%s",
urlTemplate: "https://issues.example.com/%s",
},
tms: {
nameTemplate: "TMS #%s",
urlTemplate: "https://tms.example.com/%s",
},
jira: {
urlTemplate: "https://jira.example.com/browse/%s",
},
},
categories: [
{
name: "foo",
messageRegex: "bar",
traceRegex: "baz",
matchedStatuses: [Status.FAILED, Status.BROKEN],
},
],
environmentInfo: {
os_platform: os.platform(),
os_release: os.release(),
os_version: os.version(),
bun_version: Bun.version,
},
globalLabels: {
layer: "api",
},
} satisfies ReporterConfig;
await import("allure-bun/setup");Apunta bunfig.toml a tu archivo preload en lugar de directamente a allure-bun/setup:
[test]
preload = ["./preload.ts"]Usar la variable de entorno
Para despliegues simples donde todas las opciones pueden expresarse como JSON, pasa la configuración a través de la variable de entorno ALLURE_BUN_CONFIG:
export ALLURE_BUN_CONFIG='{"resultsDir":"allure-results","environmentInfo":{"node_version":"20"}}'
bun test$Env:ALLURE_BUN_CONFIG = '{"resultsDir":"allure-results","environmentInfo":{"node_version":"20"}}'
bun testglobalThis.allureBunConfig tiene prioridad sobre ALLURE_BUN_CONFIG si ambos están definidos.
resultsDir
Ruta al directorio donde Allure Bun guardará los resultados de prueba, consulta Cómo funciona. Si el directorio no existe, será creado. El valor predeterminado es allure-results.
También puedes establecer el directorio de salida usando la variable de entorno ALLURE_RESULTS_DIR. La opción resultsDir tiene prioridad sobre la variable de entorno si ambas están definidas.
links
Un mapeo de plantillas que pueden usarse para construir URLs completas a partir de identificadores cortos.
Para cada tipo de enlace (consulta allure.link()), puedes especificar lo siguiente:
nameTemplate— una plantilla para generar el nombre del enlace cuando no se proporciona.urlTemplate— una plantilla para generar la dirección del enlace cuando no se proporciona.
Ambas plantillas deben contener %s en la posición donde debe colocarse el identificador.
Por ejemplo, con la configuración anterior, await allure.issue("123") producirá un enlace con el nombre Issue #123 y la dirección https://issues.example.com/123. Allure mostrará el enlace con el ícono apropiado para el tipo issue.
categories
Define categorías personalizadas que se usarán para distinguir los resultados de prueba por sus errores; consulta Categorías.
Esta configuración es un arreglo, donde cada elemento es un objeto que representa una categoría personalizada. Los objetos pueden tener las siguientes propiedades:
name— nombre de la categoría.messageRegex— una expresión regular con la que debe coincidir el mensaje del resultado de prueba.traceRegex— una expresión regular con la que debe coincidir la traza del resultado de prueba.matchedStatuses— un arreglo de estados con los que debe coincidir el resultado de prueba.flaky— indica si el resultado de prueba debe marcarse como inestable.
environmentInfo
Pares clave-valor que se mostrarán en la página principal del reporte; consulta Información del entorno.
globalLabels
Etiquetas aplicadas a cada resultado de prueba en la ejecución. Útil para etiquetar todos los resultados con una capa, equipo o identificador de entorno sin repetirlo en cada prueba.
Puede proporcionarse como un arreglo de objetos de etiqueta { name, value }:
globalThis.allureBunConfig = {
globalLabels: [
{ name: "layer", value: "api" },
{ name: "team", value: "backend" },
],
};O como un objeto simple que mapea nombres de etiquetas a valores. Un nombre puede mapearse a una cadena simple o a un arreglo de cadenas:
globalThis.allureBunConfig = {
globalLabels: {
layer: "api",
team: "backend",
},
};