Merv-Local + Cucumber guide

Introduction

Cucumber runs BDD scenarios in Java. Merv-Local hooks into Cucumber via org.teche.merv.client.plugin.MervCucumberHandler and writes rich HTML/JSON reports under merv.report.folder — no central server required.

You will learn
  • How to add merv-client-api to Maven or Gradle
  • Minimum merv.properties for local mode
  • How to register the Cucumber plugin and bind Selenium (optional)
  • How to record data, validation, and info steps
  • Where suite HTML and the dashboard live after a run

Add dependency

Add MERV to your project (use the latest version from Maven Central when available):

Maven (pom.xml)

<dependency>
  <groupId>io.github.techelliptica</groupId>
  <artifactId>merv-client-api</artifactId>
  <version>3.0.3</version>
</dependency>

Gradle

dependencies {
  testImplementation "io.github.techelliptica:merv-client-api:3.0.3"
}

Configure merv.properties

Place merv.properties on the classpath (for example src/test/resources/):

merv.local=true
merv.regression_suite=Your Regression Suite Name
merv.report.folder=./merv-reports
merv.execution.parallel=false
merv.screenshot=on

These are the minimum settings for local report generation.

Register Cucumber plugin

Register the MERV Cucumber plugin so execution events are captured:

@CucumberOptions(
  plugin = {
    "org.teche.merv.client.plugin.MervCucumberHandler"
  }
)

If you use Cucumber 7+ with JUnit Platform, configure the same plugin in your platform properties.

Bind automation (optional)

When merv.screenshot=on, bind your driver in hooks so screenshots and step context are captured:

WebDriverContext.setDriver(driver);
MervCucumberHandler.setAutomationToolObject(AutomationTool.SELENIUM, driver);

Plugin steps in tests

Use the unified reporter API (same for Cucumber, TestNG, and JUnit 5):

MervReporter.validation("Verify total", expected, actual);
MervReporter.data("Payload", requestJson);
MervReporter.info("Reached checkout page");

Run your suite

mvn test

Gradle:

./gradlew test

Run your Cucumber suite normally. MERV generates local report artifacts during execution.

Viewing Merv reports

After a run, reports live under {merv.report.folder} (for example ./merv-reports/). Open paths through a local web server — not via file:// in the file manager.

merv-reports/ index.html # Dashboard (all runs) 15-05-2026 14-23-41 Merv-Report/ json/merv-report.json # Suite + testcase data html/merv-report.html # Final suite report html/merv-report-live.html # Live report during run

Open with a web server

Merv-Local reports load JSON and charts with fetch. Browsers often block that on file:// URLs. Use your IDE’s static server (or any local HTTP server) so the address bar shows http://localhost:….

  1. In VS Code, install Live Server, right-click merv-reports/index.html, and choose Open with Live Server.
  2. In IntelliJ IDEA, right-click index.html and choose Open in Browser (built-in preview server).
  3. While tests run, keep merv-report-live.html open on the same server for live updates.

What’s next

← Back to Documentation