Skip to content

allure-framework/allure-java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

866 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Allure Java

Allure Java is the JVM integration family for Allure Report. It contains test framework adapters, runtime APIs, HTTP exchange integrations, browser tooling, assertion integrations, and internal support modules used to write Allure result files from Java, Groovy, Scala, Kotlin, and other JVM test suites.

Requirements

  • Allure Java 3.x targets Java 17 and newer.
  • Use one framework adapter per test runtime, for example allure-jupiter, allure-testng, or allure-cucumber7-jvm.
  • Prefer allure-bom to keep Allure module versions aligned.
  • allure-junit5 and allure-junit5-assert are no longer published aliases; use allure-jupiter and allure-jupiter-assert.
  • HTTP client integrations now write a single structured HTTP exchange attachment with content type application/vnd.allure.http+json.

Quick Start

Gradle:

dependencies {
    testImplementation(platform("io.qameta.allure:allure-bom:<allure-version>"))
    testImplementation("io.qameta.allure:allure-jupiter")
}

tasks.test {
    useJUnitPlatform()
}

Maven:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-bom</artifactId>
            <version>${allure.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-jupiter</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Run your tests, then generate or serve the report from the produced Allure results directory, usually build/allure-results for Gradle or target/allure-results for Maven.

Module Catalog

Test Frameworks

Module Use When Registration
allure-jupiter JUnit Jupiter on JUnit 5 or 6 JUnit Platform service loader
allure-junit-platform Building a custom JUnit Platform integration JUnit Platform listener and filter services
allure-junit4 JUnit 4 runner where listeners can be configured Register io.qameta.allure.junit4.AllureJunit4
allure-junit4-aspect Gradle built-in JUnit 4 execution Enable AspectJ weaver
allure-testng TestNG 7 suites TestNG service loader or listener registration
allure-spock2 Spock 2 specifications Spock global extension service
allure-spock Legacy Spock 1 specifications Spock global extension service
allure-scalatest ScalaTest suites ScalaTest reporter
allure-cucumber7-jvm Cucumber JVM 7 Cucumber plugin
allure-jbehave5 JBehave 5 stories JBehave story reporter
allure-karate Karate runtime hooks Karate runtime hook
allure-citrus Citrus tests Citrus listeners

HTTP, Browser, And Client Integrations

Module Use When Output
allure-rest-assured REST Assured filters HTTP exchange attachment
allure-httpclient5 Apache HttpClient 5 interceptors HTTP exchange attachment
allure-httpclient Apache HttpClient 4 interceptors HTTP exchange attachment
allure-okhttp3 OkHttp 3 or 4 interceptors HTTP exchange attachment
allure-spring-web Spring RestTemplate interceptors HTTP exchange attachment
allure-jax-rs Jakarta RESTful Web Services / JAX-RS client filters HTTP exchange attachment
allure-servlet-api Jakarta Servlet request/response conversion HTTP exchange request/response model
allure-grpc gRPC client interceptors HTTP exchange attachment with gRPC stream metadata
allure-selenide Selenide UI tests UI steps, screenshots, page source, logs
allure-selenium-bidi Selenium WebDriver BiDi sessions Browser logs and network attachments
allure-playwright Playwright Java actions AspectJ action steps and screenshots
allure-jooq jOOQ execution listener SQL execution steps

Assertions And Utilities

Module Use When Notes
allure-assertj AssertJ assertions should appear as Allure steps Requires AspectJ
allure-hamcrest Hamcrest assertions should appear as Allure steps Requires AspectJ
allure-jupiter-assert JUnit Jupiter assertions should appear as Allure steps Requires AspectJ
allure-awaitility Awaitility polling should appear as Allure steps Register condition listener
allure-jsonunit JsonUnit diffs should be attached to Allure Provides JSON matcher/listener helpers

Core And Support Modules

Module Purpose
allure-bom Maven/Gradle dependency alignment
allure-java-commons Runtime API, lifecycle, annotations, aspects, HTTP exchange model, test-plan filtering
allure-model Serializable Allure result model
allure-descriptions-javadoc Annotation processor for JavaDoc-based test descriptions
allure-java-commons-test Internal test utilities for Allure Java modules

Common Runtime APIs

Most adapters depend on allure-java-commons, which provides the high-level API:

import io.qameta.allure.Allure;

Allure.step("Create order", () -> {
    Allure.attachment("request-id", "42");
});

It also provides the HTTP exchange model:

import io.qameta.allure.Allure;
import io.qameta.allure.http.HttpExchange;

var exchange = HttpExchange.builder()
        .redactHeader("X-Api-Key")
        .redactCookie("SESSION")
        .setMaxBodySize(64 * 1024)
        .request("GET", "https://example.test/orders", request -> request
                .addHeader("X-Api-Key", "secret"))
        .response(response -> response
                .setStatus(200))
        .build();

Allure.addHttpExchange("HTTP exchange", exchange);

Maintainer References

Packages

 
 
 

Contributors