Skip to content
Allure report logoAllure Report
Main Navigation MódulosDocumentaciónProyecto inicial

Español

English

Español

English

Appearance

Sidebar Navigation

Allure 3

Instalación y Actualización

Instalación

Actualización

Configurar

Trabajando con Reportes

Cómo generar un reporte

Cómo ver un reporte

Mejorar la legibilidad de reportes

Mejorar la navegación en reporte

Lectura de los gráficos de Allure

Migrar desde Allure 2

Allure 2

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Trabajando con Reportes

Cómo generar un reporte

Cómo ver un reporte

Mejorar la legibilidad de reportes

Mejorar la navegación en reporte

Funcionalidades

Agent Mode

Pasos de prueba

Adjuntos

Estados de prueba

Diferencias de aserciones

Ordenar y filtrar

Entornos

Construcciones Multietapa

Categorías

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Quality Gate

Errores y Adjuntos Globales

Línea de tiempo

Exportar a CSV

Exportar métricas

Guías

Parametrización JUnit 5

JUnit 5 & Selenide: capturas de pantalla y adjuntos

JUnit 5 & Selenium: capturas de pantalla y adjuntos

Configurar JUnit 5 con GitHub Actions

Parametrización en Pytest

Pytest & Selenium: capturas de pantalla y adjuntos

Pytest & Playwright: capturas de pantalla y adjuntos

Pytest & Playwright: videos

Parametrización en Playwright

Publicando Reportes en GitHub Pages

Allure Report 3: XCResults Reader

Cómo funciona

Visión general

Glosario

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Identificadores de Prueba

Integraciones

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

IDEs de JetBrains

Maven

TeamCity

Visual Studio Code

Frameworks

AVA

Empezando

Configuración

Referencia

Axios

Primeros pasos

Configuración

Referencia

Behat

Primeros pasos

Configuración

Referencia

Behave

Primeros pasos

Configuración

Referencia

Bun

Primeros pasos

Configuración

Referencia

Chai

Primeros pasos

Referencia

Codeception

Primeros pasos

Configuración

Referencia

CodeceptJS

Primeros pasos

Configuración

Referencia

Cucumber.js

Primeros pasos

Configuración

Referencia

Cucumber-JVM

Primeros pasos

Configuración

Referencia

Cucumber.rb

Primeros pasos

Configuración

Referencia

Cypress

Primeros pasos

Configuración

Referencia

Fetch

Primeros pasos

Configuración

Referencia

Go

Primeros pasos

Configuración

Referencia

Jasmine

Primeros pasos

Configuración

Referencia

JBehave

Primeros pasos

Configuración

Referencia

Jest

Primeros pasos

Configuración

Referencia

JUnit 4

Primeros pasos

Configuración

Referencia

JUnit 5

Primeros pasos

Configuración

Referencia

Mocha

Primeros pasos

Configuración

Referencia

Newman

Primeros pasos

Configuración

Referencia

Node.js Test Runner

Empezando

Configuración

Referencia

NUnit

Primeros pasos

Configuración

Referencia

PHPUnit

Primeros pasos

Configuración

Referencia

Playwright

Primeros pasos

Configuración

Referencia

Playwright Java

Empezando

Configuración

Referencia

pytest

Primeros pasos

Configuración

Referencia

Pytest-BDD

Primeros pasos

Configuración

Referencia

Reqnroll

Primeros pasos

Configuración

Referencia

REST Assured

Primeros pasos

Configuración

Robot Framework

Primeros pasos

Configuración

Referencia

Rust Cargo Test

Primeros pasos

Configuración

Referencia

RSpec

Primeros pasos

Configuración

Referencia

SpecFlow

Primeros pasos

Configuración

Referencia

Spock

Primeros pasos

Configuración

Referencia

TestCafe

Empezando

Configuración

Referencia

TestNG

Primeros pasos

Configuración

Referencia

Vitest

Primeros pasos

Configuración

Referencia

WebdriverIO

Primeros pasos

Configuración

Referencia

xUnit.net

Primeros pasos

Configuración

Referencia

On this page

Referencia de Allure para TestCafe ​

Estas son las funciones y convenciones que puedes usar para integrar tus pruebas de TestCafe con Allure. Para una introducción a los tres estilos de API (API en tiempo de ejecución, API Meta y anotaciones en el título), consulta Primeros pasos.

Para etiquetas y enlaces, la meta a nivel de prueba sobrescribe la meta a nivel de fixture para la misma clave. Esto te permite establecer valores predeterminados en un fixture y sobrescribirlos en pruebas individuales.

Metadatos ​

Asigna la descripción, enlaces y otros metadatos de una prueba.

Descripción ​

  • allure.description(markdown: string): Promise<void>

Establece la descripción de la prueba. Se permite formato Markdown.

js
const { description } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await description("Esta prueba verifica que un usuario puede iniciar sesión con credenciales válidas.");
  // ...
});

Para establecer una descripción en HTML, usa allure.descriptionHtml(html: string).

Nombre para mostrar ​

  • allure.displayName(name: string): Promise<void>

Sobrescribe el nombre de la prueba tal como aparece en el reporte. Esto no afecta la identidad de la prueba ni el seguimiento del historial — solo la etiqueta mostrada.

js
const { displayName } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await displayName("Iniciar sesión con nombre de usuario y contraseña");
  // ...
});

Propietario ​

  • allure.owner(name: string): Promise<void>
  • Meta: "allure.label.owner": "<value>"
  • Título: @allure.label.owner=<value>

Establece el propietario de la prueba.

js
const { owner } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await owner("alice");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ "allure.label.owner": "alice" })("sign in", async (t) => {
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test("sign in @allure.label.owner=alice", async () => {
  // ...
});

Tag ​

  • allure.tag(name: string): Promise<void>
  • allure.tags(...names: string[]): Promise<void>
  • Meta: "allure.label.tag": "<value>" o "allure.label.tag": ["<value1>", "<value2>"]
  • Título: @allure.label.tag=<value> (repetir para múltiples tags)

Establece los tags de la prueba.

js
const { tag, tags } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await tag("smoke");
  await tags("authentication", "web");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ "allure.label.tag": ["smoke", "authentication", "web"] })("sign in", async (t) => {
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test(
  "sign in" +
    " @allure.label.tag=smoke" +
    " @allure.label.tag=authentication" +
    " @allure.label.tag=web",
  async () => {
    // ...
  },
);

Severidad ​

  • allure.severity(level: string): Promise<void>
  • Meta: "allure.label.severity": "<value>"
  • Título: @allure.label.severity=<value>

Establece la severidad de la prueba.

Los valores permitidos son: "trivial", "minor", "normal", "critical" y "blocker".

js
const { severity, Severity } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await severity(Severity.CRITICAL);
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ "allure.label.severity": "critical" })("sign in", async (t) => {
  // ...
});

Etiqueta ​

  • allure.label(name: string, value: string): Promise<void>
  • allure.labels(...labels: Label[]): Promise<void>
  • Meta: "allure.label.<name>": "<value>"
  • Título: @allure.label.<name>=<value>

Establece una etiqueta arbitraria para la prueba. Esta es la función base utilizada por la mayoría de los otros helpers de etiquetas de Allure.

Puedes llamar a label() varias veces con el mismo nombre para asignar varios valores.

js
const { label } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await label("microservice", "auth-service");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ "allure.label.microservice": "auth-service" })("sign in", async (t) => {
  // ...
});

ID ​

  • allure.allureId(id: string): Promise<void>
  • Meta: "allure.id": "<value>"
  • Título: @allure.id=<value>

Establece el Allure ID de la prueba. Se utiliza para filtrado por plan de pruebas para seleccionar pruebas por ID. El filtrado por plan de pruebas se ejecuta antes de que se ejecute el cuerpo de la prueba, por lo que solo las formas de clave meta y anotación en el título son efectivas para la selección basada en el plan — la función en tiempo de ejecución allureId() se ejecuta demasiado tarde para influir en el filtrado.

js
const { allureId } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await allureId("42");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ "allure.id": "42" })("sign in", async (t) => {
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test("sign in @allure.id=42", async () => {
  // ...
});

Enlace ​

  • allure.link(url: string, name?: string, type?: string): Promise<void>
  • allure.links(...links: Link[]): Promise<void>
  • allure.issue(url: string, name?: string): Promise<void>
  • allure.tms(url: string, name?: string): Promise<void>
  • Meta: "allure.link.<type>": "<url-or-id>" o "allure.link.<type>": ["<url1>", "<url2>"]
  • Título: @allure.link.<type>=<url-or-id>

Agrega un enlace relacionado con la prueba.

Según el type (que puede ser cualquier cadena, por defecto "link"), Allure intentará cargar una plantilla de enlace correspondiente definida por la opción de configuración links. Si no se encuentra una plantilla o si el valor ya es una URL completa, se deja sin modificar.

Por conveniencia, Allure proporciona dos funciones abreviadas con tipos de enlace preseleccionados: issue y tms.

js
const { issue, tms, link } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await issue("AUTH-123", "Problema relacionado");
  await tms("TMS-456", "Ticket TMS relacionado");
  await link("https://example.com/docs/auth", "Documentación de Auth");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`.meta({
  "allure.link.issue": "AUTH-123",
});

test.meta({
  "allure.link.tms": ["TMS-456", "TMS-789"],
})("sign in", async (t) => {
  // ...
});

Identidad de la prueba ​

  • allure.historyId(id: string): Promise<void>
  • allure.testCaseId(id: string): Promise<void>

Sobrescribe los identificadores que Allure utiliza para asociar esta prueba entre ejecuciones al calcular el historial y agrupar reintentos.

  • historyId reemplaza el valor calculado que se usa para buscar resultados anteriores. Úsalo cuando la misma prueba lógica se ejecuta con diferentes nombres o parámetros entre ejecuciones.
  • testCaseId reemplaza el identificador estable que se usa para agrupar reintentos. Los resultados que comparten un testCaseId se tratan como reintentos de la misma prueba.
js
const { historyId, testCaseId } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await historyId("auth-signin-v2");
  await testCaseId("TC-1001");
  // ...
});

Jerarquía basada en comportamiento ​

  • allure.epic(name: string): Promise<void>
  • allure.feature(name: string): Promise<void>
  • allure.story(name: string): Promise<void>
  • Meta: "allure.label.epic", "allure.label.feature", "allure.label.story"
  • Título: @allure.label.epic=<value>, @allure.label.feature=<value>, @allure.label.story=<value>

Asigna nombres de epics, features o historias de usuario para una prueba, como parte de la jerarquía basada en comportamiento de Allure.

js
const { epic, feature, story } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await epic("Web interface");
  await feature("Essential features");
  await story("Authentication");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`.meta({
  "allure.label.epic": "Web interface",
  "allure.label.feature": "Essential features",
});

test.meta({
  "allure.label.story": "Authentication",
})("sign in", async (t) => {
  // ...
});

Un patrón común es establecer epic y feature en el fixture para que todas las pruebas del archivo las compartan, y sobrescribir story por prueba.

Jerarquía basada en suite ​

  • allure.parentSuite(name: string): Promise<void>
  • allure.suite(name: string): Promise<void>
  • allure.subSuite(name: string): Promise<void>
  • Meta: "allure.label.parentSuite", "allure.label.suite", "allure.label.subSuite"
  • Título: @allure.label.parentSuite=<value>, etc.

Asigna los nombres de parent suite, suite o sub-suite para una prueba, como parte de la jerarquía basada en suite de Allure.

js
const { parentSuite, suite, subSuite } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  await parentSuite("Pruebas para la interfaz web");
  await suite("Pruebas para funciones esenciales");
  await subSuite("Pruebas para autenticación");
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`.meta({
  "allure.label.parentSuite": "Pruebas para la interfaz web",
  "allure.label.suite": "Pruebas para funciones esenciales",
  "allure.label.subSuite": "Pruebas para autenticación",
});

test("sign in", async (t) => {
  // ...
});
js
fixture`Authentication`.page`https://example.com/login`;

test(
  "sign in" +
    " @allure.label.parentSuite=TestsForWebInterface" +
    " @allure.label.suite=TestsForEssentialFeatures" +
    " @allure.label.subSuite=TestsForAuthentication",
  async () => {
    // ...
  },
);

Pasos de prueba ​

  • allure.step<T>(name: string, body: (context: StepContext) => T | Promise<T>): Promise<T>
  • allure.logStep(name: string, status?: Status, error?: Error): Promise<void>

Define un paso de prueba con el name dado.

Hay dos formas de definir un paso:

  • Pasos lambda

    Pasa una función a allure.step(). La función recibe un objeto StepContext con dos métodos:

    • displayName(name: string) — sobrescribe el nombre del paso mientras se ejecuta.
    • parameter(name, value, mode?) — registra un parámetro para el paso. mode puede ser "default", "masked" o "hidden".

    Los pasos de acción de TestCafe creados automáticamente se anidan dentro de cualquier paso lambda que los englobe.

  • Pasos instantáneos (no-op)

    allure.logStep() agrega un paso instantáneo sin cuerpo. Útil para anotaciones tipo log dentro de una prueba. El argumento opcional status por defecto es Status.PASSED. Pasa un objeto Error como tercer argumento para incluir su mensaje en el paso.

js
const { step, logStep, Status } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async (t) => {
  await step("Rellenar el formulario", async (ctx) => {
    await ctx.displayName("Rellenar formulario de credenciales");
    await ctx.parameter("environment", "staging");
    await t.typeText("#login", "demo-user");
    await t.typeText("#password", "secret");
  });
  await step("Enviar el formulario", async () => {
    await t.click("#submit");
  });
  await logStep("Redirección verificada", Status.PASSED);
});

Pruebas parametrizadas ​

  • allure.parameter(name: string, value: string, options?: ParameterOptions): Promise<void>

Registra un par de parámetro name/value para la prueba. Consulta Pruebas parametrizadas para más detalles.

El argumento opcional options es un objeto con dos propiedades:

  • excluded — si es true, Allure excluye este parámetro al comparar la prueba con su historial. Úsalo para marcas de tiempo u otros valores que cambian en cada ejecución. Consulta Error común: los reintentos de una prueba se muestran como pruebas separadas.

  • mode — controla cómo aparece el parámetro en el reporte:

    • "default" — se muestra en una tabla junto con otros parámetros.
    • "masked" — se muestra en la tabla, pero el valor está oculto. Úsalo para contraseñas y tokens.
    • "hidden" — no se muestra en el reporte.
js
const { parameter } = require("allure-js-commons");

fixture`Authentication`.page`https://example.com/login`;

for (const login of ["johndoe", "[email protected]"]) {
  test(`sign in as ${login}`, async () => {
    await parameter("login", login);
    await parameter("timestamp", new Date().toISOString(), { excluded: true });
    // ...
  });
}

Meta simple como parámetros ​

Cualquier clave en un objeto meta de fixture o prueba que no comience con "allure." y cuyo valor sea un escalar (string, number, boolean o bigint) se agrega automáticamente al resultado de prueba como parámetro. Esto significa que puedes anotar variantes de prueba directamente en meta sin llamar a parameter() en el cuerpo de la prueba:

js
fixture`Authentication`.page`https://example.com/login`;

test.meta({ env: "staging", shard: 1 })("sign in", async (t) => {
  // "env" y "shard" aparecen como parámetros en el reporte
  // ...
});

Adjuntos ​

  • allure.attachment(name: string, content: Buffer | string, options: ContentType | string | AttachmentOptions): Promise<void>
  • allure.attachmentPath(name: string, path: string, options: ContentType | string | Omit<AttachmentOptions, "encoding">): Promise<void>

Agrega un adjunto al resultado de prueba bajo el name dado. Pasa el content o el path desde el cual se leerán los datos.

El argumento options controla el tipo de medio y la extensión de archivo utilizada si un usuario descarga el adjunto. Puedes especificar ambos en un objeto o solo el tipo de medio y dejar que Allure infiera la extensión.

js
const { attachment, attachmentPath } = require("allure-js-commons");
const { ContentType } = require("allure-js-commons");
const path = require("node:path");

fixture`Authentication`.page`https://example.com/login`;

test("sign in", async () => {
  // ...

  await attachment("Respuesta del servidor", JSON.stringify({ status: "ok" }), "application/json");

  await attachmentPath("Archivo de configuración", path.join(__dirname, "config.txt"), ContentType.TEXT);
});

Capturas de pantalla automáticas ​

Cuando TestCafe captura capturas de pantalla (por ejemplo, al fallar una prueba o mediante t.takeScreenshot()), el reporter las adjunta automáticamente. Las capturas de pantalla se adjuntan al paso de acción al que pertenecen cuando TestCafe proporciona la asociación; de lo contrario, se adjuntan a nivel de prueba.

Videos automáticos ​

Cuando TestCafe graba videos, se adjuntan automáticamente al resultado de prueba correspondiente.

Referencia de la API Meta ​

La API Meta es una forma específica de TestCafe para asignar metadatos de Allure usando llamadas .meta() en fixture y prueba. Complementa la API en tiempo de ejecución y las anotaciones en el título.

Clave metaEfecto
"allure.id"Establece el Allure ID para la prueba
"allure.label.<name>"Agrega una etiqueta con el nombre dado; el valor puede ser string o array
"allure.link.<type>"Agrega un enlace del tipo dado; el valor puede ser una URL/ID o un array
Cualquier otra clave escalarSe convierte en un parámetro visible en el reporte

La meta a nivel de fixture se fusiona con la meta a nivel de prueba. Para la misma clave, la meta a nivel de prueba tiene prioridad.

Ejemplo combinando meta de fixture y de prueba:

js
fixture`Checkout`.page`https://example.com/checkout`.meta({
  "allure.label.epic": "Storefront",
  "allure.label.feature": "Checkout",
  "allure.link.issue": "SHOP-100",
});

test.meta({
  "allure.id": "42",
  "allure.label.story": "Pay with card",
  "allure.link.issue": "PAY-42", // sobrescribe el enlace de issue a nivel de fixture
  env: "staging", // se convierte en parámetro
})("pay with card", async (t) => {
  await t.expect(true).ok();
});

Referencia de anotaciones en el título ​

Las anotaciones en el título usan @allure.<type>=<value> (o equivalentes @allure.<type>:<value>) incrustadas en el nombre de la prueba. El nombre limpio de la prueba mostrado en el reporte tiene estas anotaciones eliminadas.

Los valores que contienen espacios deben ir entre comillas ", ' o backticks:

js
test('sign in @allure.label.epic="Web interface" @allure.label.feature="Essential features"', async () => {
  // ...
});
AnotaciónEfecto
@allure.id=<value>Establece el Allure ID
@allure.label.<name>=<value>Agrega una etiqueta con el nombre dado
@allure.link.<type>=<value>Agrega un enlace del tipo dado
js
fixture`Authentication`.page`https://example.com/login`;

test(
  "sign in" +
    " @allure.id=42" +
    " @allure.label.severity=critical" +
    " @allure.label.tag=smoke" +
    " @allure.link.issue=AUTH-123",
  async () => {
    // nombre de prueba mostrado en el reporte: "sign in"
    // ...
  },
);
Esta página ha sido traducida automáticamente. Si notas algún error, te agradeceríamos mucho que nos lo hicieras saber.
Pager
Previous pageConfiguración
Next pagePrimeros pasos
Powered by

Suscríbete a nuestro boletín

Recibe noticias del producto que realmente necesitas, sin spam.

Suscribirse
Allure TestOps
  • Visión general
  • Por qué elegirnos
  • Nube
  • Autoalojado
  • Historias de éxito
Compañía
  • Documentación
  • Blog
  • Sobre nosotros
  • Contacto
  • Eventos
© 2026 Qameta Software Inc. All rights reserved.