Skip to content

v0.1.0 — first Maven Central release

Choose a tag to compare

@naveenanimation20 naveenanimation20 released this 26 Sep 16:38
· 70 commits to main since this release

First release of reportingLabs for Java on Maven Central 🎉

Same self-contained HTML report as the Node.js side — one file, no server, no login, no expiry. A Java team's report is byte-for-byte the report a JavaScript team opens.

Artifacts (all on Maven Central under dev.reportinglabs)

Artifact Purpose
reporting-labs-core Engine, annotations and Rl.* runtime helpers. Framework-agnostic.
reporting-labs-junit5 JUnit 5 Extension, auto-registered via ServiceLoader.
reporting-labs-testng TestNG listener, auto-registered via ServiceLoader.
reporting-labs-playwright One-line auto-capture for Playwright for Java.

Install

JUnit 5

<dependency>
  <groupId>dev.reportinglabs</groupId>
  <artifactId>reporting-labs-junit5</artifactId>
  <version>0.1.0</version>
  <scope>test</scope>
</dependency>

Add src/test/resources/junit-platform.properties:

junit.jupiter.extensions.autodetection.enabled=true

Run mvn test. Open reporting-labs/index.html.

TestNG

<dependency>
  <groupId>dev.reportinglabs</groupId>
  <artifactId>reporting-labs-testng</artifactId>
  <version>0.1.0</version>
  <scope>test</scope>
</dependency>

Auto-registers via ServiceLoader — no <listeners> block needed in testng.xml.

A first tagged test

import dev.reportinglabs.core.Rl;
import dev.reportinglabs.core.annotations.*;
import org.junit.jupiter.api.Test;
import java.util.Map;

@Owner("naveen") @Feature("checkout")
class CheckoutTest {

  @Test @Priority("P0") @Severity("blocker") @Story("SHOP-231")
  void places_an_order_with_a_saved_card() {
    Rl.testData("Cart snapshot", Map.of(
      "user", "demo@shop.io", "card", "4242…", "total", 99.90));
    Rl.log("opening checkout");
    // your existing Selenium / Playwright / plain Java code — no wrappers
  }
}

Playwright for Java — auto-capture

import dev.reportinglabs.playwright.RlPlaywright;
import com.microsoft.playwright.*;

@BeforeEach
void setup() {
  playwright = Playwright.create();
  browser    = playwright.chromium().launch();
  page       = browser.newPage();
  RlPlaywright.attach(page);   // <-- one line does everything
}

That one line gives you:

  • Every request / response recorded as an API call in the report
  • A Playwright trace started and attached on test finish
  • A full-page screenshot on failure

What's inside

  • 10 annotations — @Priority, @Severity, @Owner, @Feature, @Story, @Epic, @Issue, @Component, @Team, @Meta
  • Rl.* runtime helpers — Rl.log(), Rl.testData(), Rl.api(), Rl.attach(), Rl.meta()
  • Sensitive-key masking — password, token, authorization, cvv, apiKey, etc. auto-masked
  • History + trend chart — reporting-labs.history.json powers the pass-rate trend
  • Failure clusters — thirty red tests that share one error read as one problem
  • Same six tabs as the Node.js reporter — Overview, Tests, Failures, API, Graphs, Timeline
  • Works with anything — Selenium, Playwright, REST Assured, Karate, plain code — same Rl.* surface

Docs

Requirements

  • JDK 11+
  • Maven 3.9+ or Gradle 8+
  • JUnit Jupiter 5.10+ (for reporting-labs-junit5)
  • TestNG 7.10+ (for reporting-labs-testng)
  • Playwright for Java 1.47+ (for reporting-labs-playwright)