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

Español

English

Español

English

Appearance

Sidebar Navigation

Introducción

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Primeros pasos

Cómo ver un informe

Mejorar la legibilidad de informes

Mejorar la navegación en informe

Funcionalidades

Pasos de prueba

Adjuntos

Estados de prueba

Ordenar y filtrar

Categorías de defectos

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Cronología

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

Cómo funciona

Visión general

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Integraciones

Azure DevOps

Bamboo

GitHub Actions

Jenkins

IDEs de JetBrains

TeamCity

Visual Studio Code

Frameworks

Behat

Empezando

Configuración

Referencia

Behave

Empezando

Configuración

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

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

Introducción a Allure Spock ​

Última versión de Allure Spock

Genera hermosos informes en HTML usando Allure Report y tus pruebas con Spock.

Ejemplo de Informe Allure Spock

INFO

Consulta los proyectos de ejemplo en github.com/allure-examples para ver Allure Spock en acción.

Configuración ​

1. Prepara tu proyecto ​

  1. Abre una terminal y asegúrate de que Java versión 8 o superior esté disponible en el entorno.

    bash
    java --version
  2. En la sección dependencies de tu archivo build.gradle.kts, añade la especificación de dependencia de Allure Spock antes de las dependencias del marco de trabajo Spock.

    WARNING

    Debido a un detalle de implementación, algunas funcionalidades de Allure Spock no funcionarán a menos que las dependencias estén listadas en el orden correcto. Para detalles técnicos, consulta la discusión en GitHub.

    kts
    dependencies {
        // Allure Spock adapter
        testImplementation(platform("io.qameta.allure:allure-bom:2.24.0"))
        testImplementation("io.qameta.allure:allure-spock2")
        testImplementation("io.qameta.allure:allure-junit-platform")
    
        // Spock framework
        testImplementation(platform("org.spockframework:spock-bom:2.3-groovy-4.0"))
        testImplementation("org.spockframework:spock-core")
    
        // ...
    }
  3. Actualiza el proyecto y descarga todas las dependencias:

    bash
    ./gradlew build
    bash
    gradlew build

2. Ejecuta las pruebas ​

Ejecuta tus pruebas Spock de la misma forma que lo harías normalmente. Por ejemplo:

bash
./gradlew test
bash
gradlew test

Esto guardará los datos necesarios en el directorio build/allure-results u otro, según la configuración, consulta AllureExtension. Si el directorio ya existe, los nuevos archivos se agregarán a los existentes, de manera que un informe futuro se basará en todos ellos.

3. Genera un informe ​

Finalmente, convierte los resultados de las pruebas en un informe HTML. Esto puede hacerse con uno de los siguientes comandos:

  • gradle allureReport procesa los resultados de las pruebas y guarda un informe HTML en build/reports/allure-report u otro directorio, según la configuración, consulta AllureExtension. Para ver el informe, utiliza el comando allure open.

    Usa este comando si necesitas guardar el informe para referencia futura o para compartirlo con colegas.

  • gradle allureServe crea el mismo informe que gradle allureReport pero lo coloca en un directorio temporal y comienza un servidor web local configurado para mostrar el contenido de ese directorio. El comando luego abre automáticamente la página principal del informe en un navegador web.

    Usa este comando si necesitas ver el informe para ti mismo y no necesitas guardarlo.

Escribir pruebas ​

El adaptador Allure Spock no solo recopila los datos proporcionados por las funciones estándar de Spock, sino que también ofrece características adicionales para escribir pruebas aún mejores. Esta sección enumera las formas más destacadas de mejorar tus pruebas, utilizando tanto las características de Spock como las de Allure Spock.

Con Allure Spock, puedes:

  • proporcionar descripción, enlaces y otros metadatos,
  • organizar pruebas en jerarquías,
  • dividir la prueba en pasos de prueba más pequeños y fáciles de leer,
  • describir los parámetros utilizados al ejecutar pruebas parametrizadas,
  • hacer que la prueba guarde capturas de pantalla y otros archivos durante la ejecución,
  • seleccionar qué pruebas ejecutar a través de un archivo de plan de pruebas,
  • proporcionar información arbitraria del entorno para todo el informe de prueba.

Especificar descripción, enlaces y otros metadatos ​

Puedes agregar una gran cantidad de metadatos a cada prueba para que aparezcan en el informe. Consulta la referencia para obtener más detalles.

Para cada uno de los campos de metadatos, hay dos formas de asignarlos: mediante una anotación antes del método de prueba o mediante una llamada de método dentro del cuerpo del método de prueba. La segunda forma se denomina “dinámica”, porque permite construir cadenas y otros valores en tiempo de ejecución antes de pasarlos a los métodos. Sin embargo, se recomienda encarecidamente asignar todos los metadatos lo antes posible. De lo contrario, existe el riesgo de que la prueba falle antes de haber establecido todos los metadatos, lo que afecta negativamente la legibilidad del informe de prueba.

groovy
import io.qameta.allure.Description
import io.qameta.allure.Issue
import io.qameta.allure.Link
import io.qameta.allure.Owner
import io.qameta.allure.Severity
import io.qameta.allure.TmsLink
import spock.lang.Specification

import static io.qameta.allure.SeverityLevel.*

class TestMyWebsite extends Specification {

    @Description("This test attempts to log into the website using a login and a password. Fails if any error happens.\n\nNote that this test does not test 2-Factor Authentication.")
    @Severity(CRITICAL)
    @Owner("John Doe")
    @Link(name = "Website", url = "https://dev.example.com/")
    @Issue("AUTH-123")
    @TmsLink("TMS-456")
    def "Test Authentication"() {
        expect: true
    }
}
groovy
import io.qameta.allure.Allure
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        Allure.description("This test attempts to log into the website using a login and a password. Fails if any error happens.\n\nNote that this test does not test 2-Factor Authentication.")
        Allure.label("severity", "critical")
        Allure.label("owner", "John Doe")
        Allure.link("Website", "https://dev.example.com/")
        Allure.issue("AUTH-123", "https://example.com/issues/AUTH-123")
        Allure.tms("TMS-456", "https://example.com/tms/TMS-456")
        expect: true
    }
}

Organizar pruebas ​

Como se describe en Mejorar la navegación en tu informe de pruebas, Allure admite múltiples formas de organizar las pruebas en estructuras jerárquicas. Allure Spock proporciona funciones para asignar los campos relevantes a las pruebas, ya sea mediante la adición de anotaciones o de forma “dinámica” (igual que para los campos de metadatos).

Para especificar la ubicación de una prueba en la jerarquía basada en comportamiento:

groovy
import io.qameta.allure.Epic
import io.qameta.allure.Feature
import io.qameta.allure.Story
import spock.lang.Specification

class TestMyWebsite extends Specification {

    @Epic("Web interface")
    @Feature("Essential features")
    @Story("Authentication")
    def "Test Authentication"() {
        expect: true
    }
}
groovy
import io.qameta.allure.Allure
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        Allure.epic("Web interface")
        Allure.feature("Essential features")
        Allure.story("Authentication")
        expect: true
    }
}

Para especificar la ubicación de una prueba en la jerarquía basada en suites:

groovy
import io.qameta.allure.Allure
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        Allure.label("parentSuite" "Tests for web interface")
        Allure.suite("Tests for essential features")
        Allure.label("subSuite", "Tests for authentication")
        expect: true
    }
}

La ubicación de una prueba en la jerarquía basada en paquetes se define por los nombres totalmente cualificados de las clases en las que se declaran, con prefijos comunes mostrados como paquetes principales.

Dividir una prueba en pasos ​

Allure Spock proporciona dos formas de crear pasos y subpasos: “pasos anotados” y “pasos no operativos” (no-op steps), consulta la referencia.

groovy
import io.qameta.allure.Step
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        expect: true
        steps.step1()
        steps.step2()
    }

    private class steps {

        @Step("Step 1")
        static def step1() {
            expect: true
        }

        @Step("Step 2")
        static def step2() {
            expect: true
        }
    }
}
groovy
import io.qameta.allure.Allure
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        Allure.step("Step 1")
        expect: true
        Allure.step("Step 2")
        expect: true
    }
}

Describir pruebas parametrizadas ​

Allure Spock admite el patrón de pruebas parametrizadas.

La forma más sencilla de escribir una prueba parametrizada es definir una tabla de datos. Consulta Pruebas basadas en datos en la documentación de Spock. Esto hará que Spock ejecute la misma prueba varias veces, y Allure detectará automáticamente cada conjunto de parámetros y los mostrará en el informe generado.

Además, puedes llamar manualmente al método parameter() de Allure Spock para definir pseudo-parámetros en cualquier función.

groovy
import io.qameta.allure.Allure
import spock.lang.Specification

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        expect: true
        where:
        login                 | _
        "johndoe"             | _
        "[email protected]" | _
    }

    def "Test Authentication With Empty Login"() {
        Allure.parameter("login", "")
        expect: true
    }
}

Adjuntar capturas de pantalla y otros archivos ​

Puedes adjuntar cualquier tipo de archivo a tu informe de Allure. Por ejemplo, una forma popular de hacer que un informe sea más comprensible es adjuntar una captura de pantalla de la interfaz de usuario en un momento determinado.

Allure Spock proporciona varias formas de crear un archivo adjunto, ya sea a partir de archivos existentes o generados dinámicamente. Consulta la referencia.

groovy
import io.qameta.allure.Allure
import spock.lang.Specification

import java.nio.file.Files
import java.nio.file.Paths

class TestMyWebsite extends Specification {

    def "Test Authentication"() {
        Allure.attachment("data.txt", "This is the file content.")
        Allure.attachment(
            "img.png",
            Files.newInputStream(Paths.get("/path/img.png"))
        )
        expect: true
    }
}

Seleccionar pruebas mediante un archivo de plan de pruebas ​

Si la variable de entorno ALLURE_TESTPLAN_PATH está definida y apunta a un archivo existente, Spock solo ejecutará las pruebas listadas en este archivo.

Aquí tienes un ejemplo de cómo ejecutar pruebas según un archivo llamado testplan.json:

bash
export ALLURE_TESTPLAN_PATH=testplan.json
./gradlew test
powershell
$Env:ALLURE_TESTPLAN_PATH = "testplan.json"
gradlew test

Información del entorno ​

Para la página principal del informe, puedes recopilar información variada sobre el entorno en el que se ejecutaron las pruebas.

Por ejemplo, es una buena idea usar esto para recordar la versión del sistema operativo y la versión de Java. Esto puede ayudar al lector futuro a investigar errores que solo son reproducibles en ciertos entornos.

Widget de Entornos en el Informe Allure

Para proporcionar información del entorno, coloca un archivo llamado environment.properties en el directorio allure-results después de ejecutar las pruebas. Consulta el ejemplo en Archivo de entorno.

Ten en cuenta que esta característica debe usarse para propiedades que no cambian para todas las pruebas en el informe. Si tienes propiedades que pueden ser diferentes para pruebas específicas, considera usar Pruebas parametrizadas.

Pager
Previous pageReferencia
Next pageConfiguración
Powered by

Únete a nuestro boletín

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