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

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

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

Integración con Gradle ​

El plugin de Allure para Gradle genera reportes de Allure a partir de los resultados en bruto producidos por tus tareas de prueba. Se encarga de descargar el CLI de Allure, instrumentar las tareas de prueba para escribir resultados y proporcionar tareas para generar y servir reportes.

  • Requiere Gradle 8.11 o superior
  • Requiere Java 17 o superior

Configuración inicial ​

Aplica el plugin principal en tu build.gradle.kts:

kotlin
plugins {
    id("io.qameta.allure") version "4.1.0"
}

repositories {
    // Requerido para que Gradle pueda resolver las dependencias del adaptador allure-java
    mavenCentral()
}

O en Groovy DSL (build.gradle):

groovy
plugins {
    id 'io.qameta.allure' version '4.1.0'
}

repositories {
    mavenCentral()
}

El plugin io.qameta.allure es un acceso directo que aplica tanto io.qameta.allure-adapter como io.qameta.allure-report juntos. Aplica cada uno por separado si necesitas un control más detallado (ver Desglose de plugins).

Generar un reporte ​

Ver el reporte localmente ​

shell
./gradlew allureServe

Abre el reporte en un servidor web local. Por defecto, no ejecuta tus pruebas primero.

Ejecutar pruebas y ver el reporte ​

shell
./gradlew allureServe --depends-on-tests

Generar un reporte estático ​

shell
./gradlew allureReport

Salida: build/reports/allure-report/allureReport/

Cuando usas la extensión reportDir, el subdirectorio de salida siempre se nombra según la tarea (allureReport, allureAggregateReport, etc.), por lo que el reporte agregado se encuentra en build/reports/allure-report/allureAggregateReport/. Cuando usas el flag --report-dir, el reporte se escribe directamente en la ruta especificada sin añadir un subdirectorio con el nombre de la tarea.

Ejecutar pruebas y generar un reporte en un solo comando ​

shell
./gradlew allureReport --depends-on-tests

Tareas añadidas por el plugin ​

TareaDescripción
allureReportGenera un reporte HTML estático
allureServeGenera un reporte y lo abre en un servidor web local
allureAggregateReportGenera un reporte agregado entre subproyectos (requiere io.qameta.allure-aggregate-report)
allureAggregateServeSirve un reporte agregado (requiere io.qameta.allure-aggregate-report)
downloadAllureDescarga y almacena en caché el CLI de Allure

Selección de la versión de Allure ​

Establece allure.version para elegir el entorno de ejecución:

kotlin
allure {
    version = "3.9.0"   // Allure 3 (por defecto)
    // version = "2.42.1"  // Allure 2
}
  • Versión 3.x → Allure 3 (basado en Node.js, aprovisionado automáticamente)
  • Versión 2.x → Allure 2 (archivo zip allure-commandline, descargado desde Maven Central)
  • Por defecto si no se establece: Allure 3, versión 3.9.0

Cualquier cadena de versión cuyo número mayor sea 3 o superior selecciona Allure 3; número mayor 2 o inferior selecciona Allure 2.

Aprovisionamiento del entorno de Allure 3 ​

Para Allure 3, el plugin aprovisiona automáticamente un entorno privado de Node.js. No necesitas tener Node.js instalado en tu máquina.

En el primer uso, el plugin descarga Node.js e instala el paquete npm allure. La descarga de Node.js se almacena en caché por Gradle y se omite en compilaciones posteriores. La instalación de npm se ejecuta nuevamente en un checkout nuevo.

Autoconfiguración del framework de pruebas ​

Cuando aplicas io.qameta.allure-adapter, el plugin escanea tu classpath de pruebas y añade automáticamente el adaptador allure-java correspondiente. No es necesario declarar manualmente la dependencia para frameworks soportados.

Frameworks soportados y sus activadores:

Nombre DSL del frameworkSe activa cuando esto está en el classpath
junit4junit:junit
junit5org.junit.jupiter:junit-jupiter-api
junitPlatformorg.junit.platform:junit-platform-launcher
testngorg.testng:testng (6.14.3+)
assertjorg.assertj:assertj-core
jbehaveorg.jbehave:jbehave-core (4.x)
jbehave5org.jbehave:jbehave-core (5.x)
karatecom.intuit.karate:karate-core
scalatestorg.scalatest:scalatest_2.12 o scalatest_2.13
spockorg.spockframework:spock-core (usa allure-spock2; requiere useJUnitPlatform() en la tarea de prueba — sin esto, el adaptador está en el classpath pero no captura resultados)
cucumber4Jvmio.cucumber:cucumber-core (4.x)
cucumber5Jvmio.cucumber:cucumber-core (5.x)
cucumber6Jvmio.cucumber:cucumber-core (6.x)
cucumber7Jvmio.cucumber:cucumber-core (7.x)

La versión por defecto de allure-java usada para todos los adaptadores es 2.35.2. La versión de AspectJ weaver es 1.9.25.1.

Qué hace la autoconfiguración ​

Cuando se detecta un framework soportado:

  • Añade la dependencia del adaptador de Allure al classpath de compilación y ejecución de pruebas
  • Añade el agente AspectJ weaver a los argumentos JVM de todas las tareas Test y JavaExec (habilita soporte para @Step y @Attachment)
  • Añade allure-descriptions-javadoc al path del procesador de anotaciones (habilita @Description desde Javadoc)
  • Configura listeners de prueba por defecto donde aplica (junit5, junitPlatform, testng, karate)

Desactivar la autoconfiguración ​

Para desactivar toda la autoconfiguración:

kotlin
allure {
    adapter {
        autoconfigure.set(false)
    }
}

Para desactivar partes individuales:

kotlin
allure {
    adapter {
        autoconfigureListeners.set(false)         // no registrar listeners por defecto
        autoconfigureJavadocDescriptions.set(false) // no añadir el procesador de anotaciones de Javadoc
        aspectjWeaver.set(false)                  // no añadir el agente AspectJ
    }
}

Para desactivar listeners solo para un framework específico:

kotlin
allure {
    adapter {
        frameworks {
            junit5 {
                autoconfigureListeners.set(false)
            }
        }
    }
}

Listar frameworks explícitamente ​

Si tienes varios frameworks de prueba en el classpath pero solo quieres instrumentar uno:

kotlin
allure {
    adapter {
        frameworks {
            junit5
            // solo se configurará junit5; los demás se ignoran
        }
    }
}

Listar cualquier framework explícitamente en frameworks {} cambia el plugin de modo totalmente automático a modo selectivo: solo los adaptadores que nombres aquí se registran, y el registro automático de los demás adaptadores se suprime. Cada adaptador listado sigue dependiendo de su activador — su dependencia solo se añade si la dependencia activadora se detecta en el classpath, por lo que no hay coste si el activador está ausente.

Referencia de configuración ​

Opciones del adaptador ​

kotlin
allure {
    adapter {
        // Versión del adaptador allure-java para todos los frameworks
        allureJavaVersion.set("2.35.2")

        // Versión de AspectJ weaver
        aspectjVersion.set("1.9.25.1")

        // Dónde las tareas de prueba escriben los resultados en bruto de Allure
        resultsDir.set(layout.buildDirectory.dir("allure-results"))

        // Ruta a categories.json para Allure 2 (detectado automáticamente desde test/resources por defecto)
        categoriesFile.set(layout.projectDirectory.file("config/categories.json"))
    }
}

Opciones del reporte ​

kotlin
allure {
    report {
        // Directorio base para todos los reportes (cada tarea tiene su propio subdirectorio nombrado según la tarea)
        reportDir.set(layout.buildDirectory.dir("my-reports"))

        // Generar un único archivo HTML autocontenible en vez de un directorio
        singleFile.set(true)

        // Archivo de configuración personalizado de Allure 3
        configFile.set(layout.projectDirectory.file("allurerc.mjs"))
    }
}

Variables de entorno para el CLI de Allure ​

kotlin
allure {
    environment.put("JAVA_HOME", "/ruta/a/java_home")
}

Opciones a nivel de tarea (línea de comandos) ​

Opciones compartidas por allureReport y allureServe:

shell
# Ejecutar tareas de prueba antes de generar el reporte
./gradlew allureReport --depends-on-tests
./gradlew allureServe --depends-on-tests

Para hacer que dependsOnTests sea permanente sin el flag, configúralo a nivel de tarea:

kotlin
tasks.named<io.qameta.allure.gradle.report.tasks.AllureReport>("allureReport") {
    dependsOnTests()
}
shell

# Usar un archivo de configuración personalizado de Allure 3 (solo Allure 3)
./gradlew allureReport --config-file=allurerc.mjs
./gradlew allureServe --config-file=allurerc.mjs

Opciones específicas de allureReport:

shell
# Generar un reporte de archivo único
./gradlew allureReport --single-file=true

# Salida a un directorio específico
./gradlew allureReport --report-dir=build/my-report

# Eliminar el directorio de reporte antes de generar
./gradlew allureReport --clean

Opciones específicas de allureServe:

shell
# Vincular el servidor a un puerto específico
./gradlew allureServe --port=8080

# Vincular el servidor a una dirección de host específica (solo Allure 2)
./gradlew allureServe --host=192.168.1.10

--host no está soportado para Allure 3. Usa solo --port, o establece allure.version en una versión 2.x si necesitas vinculación de host.

Para Allure 3, --port se pasa al subcomando allure open (Allure 3 usa internamente generate + open en vez de un proceso persistente serve).

Directorio de resultados personalizado ​

Por defecto, los resultados en bruto van a build/allure-results. Para cambiar esto:

kotlin
allure {
    adapter {
        resultsDir.set(layout.buildDirectory.dir("custom-allure-results"))
    }
}

Reporte de archivo único ​

Para producir un archivo HTML autocontenible en vez de un directorio:

kotlin
allure {
    report {
        singleFile.set(true)
    }
}

O para una ejecución puntual:

shell
./gradlew allureReport --single-file=true

Esto funciona tanto para Allure 2 como para Allure 3. Para allureServe, singleFile no tiene efecto.

Archivo de configuración de Allure 3 ​

Para Allure 3, puedes proporcionar un archivo de configuración personalizado para controlar el nombre del reporte, el tema, los entornos, agrupaciones y plugins:

kotlin
allure {
    report {
        configFile.set(layout.projectDirectory.file("allurerc.mjs"))
    }
}

O por invocación:

shell
./gradlew allureReport --config-file=allurerc.mjs

Cuando se establece configFile, el plugin pasa --config <tu archivo> al CLI de Allure y también pasa --output <reportDir>. El flag --output tiene prioridad sobre cualquier campo output en tu archivo de configuración, por lo que el reporte siempre se escribe en el reportDir de la tarea. Las opciones de Allure 3 como singleFile, nombre del reporte y tema deben establecerse en tu archivo de configuración; la propiedad singleFile a nivel de Gradle y el flag --single-file se ignoran cuando se usa un configFile personalizado.

configFile no está soportado para Allure 2. Establecerlo mientras usas una versión 2.x falla con un error.

Compilaciones multiproyecto ​

Reporte agregado ​

Para generar un reporte combinado de todos los subproyectos, aplica io.qameta.allure-aggregate-report al proyecto raíz y io.qameta.allure-adapter a cada subproyecto que ejecute pruebas.

build.gradle.kts raíz:

kotlin
plugins {
    id("io.qameta.allure-aggregate-report") version "4.1.0"
}

repositories {
    mavenCentral()
}

Cada build.gradle.kts de subproyecto:

kotlin
plugins {
    `java`
    id("io.qameta.allure-adapter") version "4.1.0"
}

Luego ejecuta:

shell
./gradlew allureAggregateReport
# o ver directamente:
./gradlew allureAggregateServe

Por defecto, io.qameta.allure-aggregate-report agrega resultados de allprojects (el proyecto raíz más todos los subproyectos). Para personalizar qué proyectos se incluyen:

kotlin
// Elimina todos los valores por defecto y añade proyectos específicos
configurations.allureAggregateReport.dependencies.clear()
dependencies {
    allureAggregateReport(project(":module1"))
    allureAggregateReport(project(":module2"))
}

Directorios de resultados por módulo ​

Si un subproyecto escribe resultados en una ubicación no predeterminada, configúralo en ese subproyecto:

kotlin
allure {
    adapter {
        resultsDir.set(layout.buildDirectory.dir("my-results"))
    }
}

Añadir directorios de resultados externos ​

Para alimentar resultados desde un directorio no gestionado por el plugin (por ejemplo, desde un script o una herramienta que no sea JVM) al reporte:

kotlin
// En un proyecto que aplica io.qameta.allure-adapter-base:
plugins {
    id("io.qameta.allure-adapter-base") version "4.1.0"
}

dependencies {
    allureRawResultElements(files(layout.buildDirectory.dir("external-results")))
}

O desde el lado del reporte:

kotlin
dependencies {
    allureReport(files(layout.buildDirectory.dir("external-results")))
}

Personalización de la descarga de Allure 2 ​

Para Allure 2, el plugin descarga io.qameta.allure:allure-commandline:{version}:zip desde Maven Central mediante la resolución de dependencias de Gradle.

URL de descarga personalizada (entornos aislados) ​

kotlin
allure {
    version.set("2.42.1")

    commandline {
        // Patrones: [organization], [group], [module], [version]
        downloadUrlPattern.set("https://my-mirror.example.com/[group]/[module]-[version].zip")
    }
}

El plugin registra un repositorio Ivy exclusivo para la URL resuelta. El archivo siempre se resuelve como zip; pon .zip fijo en tu patrón de URL.

Archivo local allure-commandline ​

Para resolver Allure 2 desde un archivo local en vez de un repositorio:

kotlin
dependencies {
    allureCommandline(files("/ruta/a/allure-commandline.zip"))
}

Usa una ruta absoluta — las rutas relativas no son fiables en compilaciones multiproyecto.

Desglose de plugins ​

El plugin principal io.qameta.allure está compuesto por plugins más pequeños que puedes aplicar individualmente:

ID del pluginQué hace
io.qameta.allureAplica io.qameta.allure-adapter + io.qameta.allure-report
io.qameta.allure-adapterInstrumenta automáticamente todas las tareas Test y JavaExec, añade adaptadores allure-java, AspectJ
io.qameta.allure-adapter-baseExpone la configuración allureRawResultElements; sin autoconfiguración de adaptadores
io.qameta.allure-reportAñade las tareas allureReport y allureServe para el proyecto actual
io.qameta.allure-aggregate-reportAñade las tareas allureAggregateReport y allureAggregateServe; agrega desde el proyecto raíz y todos los subproyectos
io.qameta.allure-downloadAñade la tarea downloadAllure; aprovisiona el CLI de Allure
io.qameta.allure-baseAñade la extensión allure {}; la base sobre la que se construyen los demás plugins

Uso en CI ​

GitHub Actions ​

Almacena en caché el directorio de caché de compilación de Gradle para evitar descargar el CLI de Allure en cada ejecución:

yaml
- name: Ejecutar pruebas y generar el reporte de Allure
  run: ./gradlew test allureReport

- name: Subir el reporte de Allure
  uses: actions/upload-artifact@v4
  with:
    name: allure-report
    path: build/reports/allure-report/allureReport/

Para compartir las cachés de Gradle entre ejecuciones (incluyendo el CLI de Allure descargado):

yaml
- uses: gradle/actions/setup-gradle@v4

Jenkins Pipeline ​

groovy
pipeline {
    agent any

    stages {
        stage('Test') {
            steps {
                sh './gradlew test'
            }
        }
        stage('Report') {
            steps {
                sh './gradlew allureReport'
                publishHTML(target: [
                    reportDir: 'build/reports/allure-report/allureReport',
                    reportFiles: 'index.html',
                    reportName: 'Allure Report'
                ])
            }
        }
    }
}

Alternativamente, si usas el plugin de Allure para Jenkins, puedes dejar que Jenkins genere y muestre el reporte directamente en vez de llamar a allureReport.

Ejecutar sin ejecutar pruebas ​

En pipelines de CI donde las pruebas y el reporte son etapas separadas, puede que quieras ejecutar solo la tarea de reporte sobre resultados ya escritos en disco:

shell
./gradlew allureReport

Esto lee los resultados existentes en build/allure-results/ sin volver a ejecutar las pruebas, que es el comportamiento por defecto.

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