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

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

Jenkins

IDEs de JetBrains

TeamCity

Visual Studio Code

Frameworks

Behat

Empezando

Configuración

Referencia

Behave

Empezando

Configuración

Referencia

Bun

Empezando

Configuración

Referencia

Chai

Empezando

Referencia

Codeception

Empezando

Configuración

Referencia

CodeceptJS

Empezando

Configuración

Referencia

Cucumber.js

Empezando

Configuración

Referencia

Cucumber-JVM

Empezando

Configuración

Referencia

Cucumber.rb

Empezando

Configuración

Referencia

Cypress

Empezando

Configuración

Referencia

Jasmine

Empezando

Configuración

Referencia

JBehave

Empezando

Configuración

Referencia

Jest

Empezando

Configuración

Referencia

JUnit 4

Empezando

Configuración

Referencia

JUnit 5

Empezando

Configuración

Referencia

Mocha

Empezando

Configuración

Referencia

Newman

Empezando

Configuración

Referencia

NUnit

Empezando

Configuración

Referencia

PHPUnit

Empezando

Configuración

Referencia

Playwright

Empezando

Configuración

Referencia

pytest

Empezando

Configuración

Referencia

Pytest-BDD

Empezando

Configuración

Referencia

Reqnroll

Empezando

Configuración

Referencia

REST Assured

Empezando

Configuración

Robot Framework

Empezando

Configuración

Referencia

Rust Cargo Test

Empezando

Configuración

Referencia

RSpec

Empezando

Configuración

Referencia

SpecFlow

Empezando

Configuración

Referencia

Spock

Empezando

Configuración

Referencia

TestNG

Empezando

Configuración

Referencia

Vitest

Empezando

Configuración

Referencia

WebdriverIO

Empezando

Configuración

Referencia

xUnit.net

Empezando

Configuración

Referencia

On this page

Primeros pasos con Allure Chai ​

Allure Chai npm latest version

Registra las aserciones de Chai como pasos en tu Allure Report.

Configuración ​

1. Prepara tu proyecto ​

  1. Asegúrate de que Node.js esté instalado.

    Allure Chai se prueba con Node.js 20 y 22. Las versiones anteriores pueden funcionar, pero no podemos garantizarlo.

  2. Asegúrate de tener Chai instalado. Allure Chai es compatible con Chai 4, 5 y 6. Chai 7 y versiones posteriores no son compatibles.

  3. Asegúrate de que Allure Report esté instalado. Si no lo está, sigue las instrucciones de instalación. Ten en cuenta que Allure Report requiere Java.

  4. Allure Chai es un plugin para Chai — no ejecuta pruebas por sí solo. Instálalo junto con una integración de Allure para el ejecutor de pruebas. Es compatible con allure-mocha, allure-jasmine, allure-jest, allure-vitest, allure-playwright y allure-bun.

    Por ejemplo, para usarlo con Mocha:

    bash
    npm install --save-dev allure-chai allure-mocha chai mocha
    bash
    yarn add --dev allure-chai allure-mocha chai mocha
    bash
    pnpm install --dev allure-chai allure-mocha chai mocha
  5. Registra allureChai con Chai antes de que se ejecuten tus pruebas. El mejor lugar es un archivo de setup que tu ejecutor de pruebas cargue antes de la suite de pruebas.

    js
    import { allureChai } from "allure-chai";
    import * as chai from "chai";
    
    chai.use(allureChai);

    La forma de cargar un archivo de setup depende de tu ejecutor de pruebas. Por ejemplo, con Mocha, agrégalo mediante el flag --require o en .mocharc.json:

    json
    {
      "require": ["./test/setup.js"]
    }

    Con Vitest, agrégalo a setupFiles en vitest.config.ts:

    ts
    export default defineConfig({
      test: {
        setupFiles: ["allure-vitest/setup", "./test/setup.ts"],
      },
    });

    WARNING

    Asegúrate de llamar a chai.use(allureChai) después de que la integración del ejecutor de Allure esté inicializada. Los imports de setup como allure-vitest/setup y similares deben ir primero.

2. Ejecuta las pruebas ​

Ejecuta tus pruebas de la misma manera que lo harías normalmente. Por ejemplo, con Mocha:

bash
npm test
bash
yarn test
bash
pnpm test

Cada aserción de Chai se registrará como un paso dentro de la prueba que la realizó. Los resultados de prueba se guardarán en allure-results o en el directorio que tu integración del ejecutor esté configurada para usar.

3. Genera un reporte ​

Por último, convierte los resultados de prueba en un reporte HTML. Esto se puede hacer con uno de dos comandos:

  • allure generate procesa los resultados de prueba y guarda un reporte HTML en el directorio allure-report. Para ver el reporte, usa el comando allure open.

  • allure serve crea el mismo reporte que allure generate y luego abre automáticamente la página principal del reporte en un navegador web.

Cómo aparecen las aserciones en los reportes ​

Una vez registrado, Allure Chai registra automáticamente cada aserción de Chai como un paso. Cada paso recibe el nombre de la expresión de aserción, de modo que el reporte se lee como el código de la prueba. Una aserción aprobada produce un paso aprobado; una aserción fallida produce un paso fallido con el mensaje de error original, y los valores real y esperado del error de aserción se capturan en los detalles del paso.

Los tres estilos de aserciones de Chai son compatibles.

Estilo expect ​

js
expect(response.status).to.equal(200);

Produce un paso con el nombre:

expect(201).to.equal(200)

Estilo should ​

js
import "chai/register-should";

response.status.should.equal(200);

Produce un paso con el nombre:

expect(201).to.equal(200)

Estilo assert ​

js
assert.equal(response.status, 200);

Produce un paso con el nombre:

assert.equal(201, 200)

Aserciones encadenadas ​

Cuando encadenas aserciones, cada aserción en la cadena produce su propio paso hermano. El segundo paso se ejecuta sobre el valor devuelto por la primera aserción, no sobre el objeto original:

js
expect({ id: 1, name: "Ada" }).to.have.property("name").that.equals("Ada");

Produce dos pasos:

expect({"id":1,"name":"Ada"}).to.have.property("name")
expect("Ada").to.equal("Ada")

Modificadores en los nombres de pasos ​

Los modificadores como not, include, deep, nested, own, ordered, any y all aparecen en el nombre del paso. Por ejemplo:

js
const user = { name: "Alice" };
expect(user).to.not.have.property("password");

const body = { id: 2 };
expect(body).to.deep.equal({ id: 1, name: "Alice" });

expect([1, 2, 3]).to.include.any.members([1, 2]);

Estos producen pasos con los nombres:

expect({"name":"Alice"}).to.not.have.property("password")
expect({"id":2}).to.deep.equal({"id":1,"name":"Alice"})
expect([1,2,3]).to.include.any.members([1,2])

Las propiedades de la cadena de lenguaje como and, but, with, that, etc. no tienen efecto en el nombre del paso. to siempre aparece en los nombres de pasos de expect/should. be y have se agregan automáticamente como prefijos cuando el nombre de la aserción los requiere — no necesitas escribirlos en tu código para que aparezcan en el nombre del paso.

length vs lengthOf

expect(arr).to.have.length(3) produce expect([...]).to.length(3) — el have se descarta porque length es un método encadenable, no una aserción con prefijo have. Usa lengthOf si quieres que have aparezca: expect(arr).to.have.lengthOf(3) → expect([...]).to.have.lengthOf(3).

Aserciones personalizadas ​

Allure Chai instrumenta automáticamente las aserciones añadidas mediante chai.Assertion.addMethod(), chai.Assertion.addProperty() y chai.Assertion.addChainableMethod(). No se necesita configuración adicional — las aserciones personalizadas se registran como pasos de la misma manera que las integradas.

Las APIs overwriteMethod, overwriteProperty y overwriteChainableMethod no son interceptadas. Si un plugin de Chai las utiliza para redefinir una aserción existente después de chai.use(allureChai), la implementación sobreescrita no se envolverá automáticamente y esa aserción ya no se registrará como un paso.

js
chai.Assertion.addMethod("positiveNumber", function () {
  this.assert(
    this._obj > 0,
    "expected #{this} to be a positive number",
    "expected #{this} to not be a positive number",
  );
});

expect(42).to.be.positiveNumber();
// Paso: expect(42).to.positiveNumber()

Si una aserción personalizada llama a aserciones internas dentro de un callback, esas aserciones internas se registran como pasos hijo anidados del paso de la aserción exterior:

js
chai.Assertion.addMethod("satisfyEach", function (callback) {
  const items = chai.util.flag(this, "object");
  items.forEach(callback);
});

expect([{ enabled: true }]).to.satisfyEach((item) => {
  expect(item.enabled).to.equal(true);
});
// Paso: expect([{"enabled":true}]).to.satisfyEach([Function])
//   Paso: expect(true).to.equal(true)

Compatibilidad ​

Allure Chai requiere que haya una integración de Allure para el ejecutor de pruebas activa cuando se ejecutan las pruebas. Es compatible con las siguientes integraciones:

IntegraciónCompatible
allure-mochaSí
allure-jasmineSí
allure-jestSí
allure-vitestSí — ver nota abajo
allure-playwrightSí
allure-bunSí
allure-cypressNo

Nota para usuarios de Vitest: El propio expect() de Vitest está basado en Chai, pero allure-vitest ya registra las aserciones de Vitest como pasos. Para evitar pasos duplicados, Allure Chai omite automáticamente las aserciones integradas de Vitest. El plugin sigue siendo útil cuando añades aserciones de Chai adicionales por encima de las integradas de Vitest — por ejemplo, de un plugin de Chai como chai-http.

Cypress no es compatible: Cypress incluye su propia instancia de Chai. Allure Chai detecta cuando globalThis.Cypress está presente y la instancia de Chai registrada coincide con la propia de Cypress, y se excluye para esa instancia — registrar allureChai contra el Chai de Cypress no tendrá ningún efecto. Si importas una copia separada de Chai en el mismo proyecto (por ejemplo, para un plugin como chai-http), esa instancia no se ve afectada por la verificación de Cypress y seguirá siendo registrada. Usa allure-cypress para las aserciones nativas de Cypress.

Esta página ha sido traducida automáticamente. Si notas algún error, te agradeceríamos mucho que nos lo hicieras saber.
Pager
Previous pageReferencia
Next pageReferencia
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.