Merv-Local
Share, Download & emailable reports
Suite reports include Share and Download next to the suite name. Share a LAN link while the report server is running, or download an emailable HTML plus an offline zip you can open without a server.
- How to open reports so Share / Download work
- How LAN sharing and firewall ports behave
- What Download produces (emailable + offline zip)
- How
merv.emailable.html=truewrites a summary at run end - How doctor adds the property for you
Overview
These controls appear on the suite report (right of the suite title) for Playwright,
Cucumber-js, Cucumber Java, TestNG, and JUnit 5 — when you open the report over HTTP.
They are hidden for file:// / unzipped offline opens (those modes cannot share or rebuild downloads).
Share
Copy a LAN URL. Same network, port open, server must stay running.
Download
Saves emailable-report.html and merv-report-offline.zip, then shows zip size.
Emailable
Interactive summary: filters, tags, machines, timeline, failures — works offline.
Offline zip
Root index.html opens the full suite report without a server. No Merv Local link.
What you get
| Artifact | When | Purpose |
|---|---|---|
{run}/emailable-report.html |
Download always; also on finalize if merv.emailable.html=true |
Compact interactive summary (also copied to report root) |
{run}/merv-report-offline.zip |
On Download | Full run folder + root index.html for offline viewing |
{run}/merv-report-upload.zip |
Finalize when merv.zip.export=true (default) |
MERV UI import bundle (JSON + screenshots) — separate from offline zip |
Serve reports (required for Share / Download)
Share and Download call HTTP APIs on the report server. Open the suite report with one of these — not as a raw file.
JavaScript / TypeScript
npx merv show-report
npx merv show-report --host 0.0.0.0
npx merv show-report --host 0.0.0.0 --port 80
Default: http://127.0.0.1:6174/. Use 0.0.0.0 for LAN Share.
Java
# From a project that depends on merv-client-api
mvn -q exec:java -Dexec.mainClass="org.teche.merv.client.utils.MervLocalReportServer"
# Or point Node at the same merv-reports folder
npx merv show-report ./merv-reports --host 0.0.0.0
Optional: merv.reports.server.host / merv.reports.server.port in merv.properties.
Share on LAN
- Start the report server with
--host 0.0.0.0(or Java host0.0.0.0). - Open a suite report from the dashboard.
- Click Share (right of the suite title) → Copy.
- Send the link to someone on the same network.
- Port must be reachable (not blocked by firewall).
- Report is only visible while the server process is running on your machine.
- If the port is blocked, try 80 or 443, or allow the port in firewall settings.
- If LAN share still fails, use Merv-Server (
merv.local=false+ API key).
Download
- With the report server running, open the suite report.
- Click Download.
- Your browser saves
emailable-report.htmlandmerv-report-offline.zip. - A popup shows Zip folder downloaded and the zip size.
Emailable report
The emailable file is a single interactive HTML page: Merv branding, overall status, execution machine(s), dashboard (charts, collapsible timeline, tags table), scenario filters (pass/fail/tags/search), expandable steps, and a failures view. Open it offline — no server required.
Write on every suite finish
merv.emailable.html=true
When enabled, finalize writes {runFolder}/emailable-report.html and updates
{reportRoot}/emailable-report.html (latest). Download always regenerates the file even if this
property is false.
Offline zip
- Root
index.htmlopenshtml/merv-report.html - Includes screenshots, JSON, emailable summary
- Merv Local / Local Dashboard links are removed (no report-root dashboard in the zip)
- Share / Download buttons stay hidden under
file://
merv.properties
| Property | Default | Description |
|---|---|---|
merv.emailable.html |
false |
Write interactive emailable HTML when the suite finishes. |
merv.zip.export |
true |
Write MERV UI upload zip (merv-report-upload.zip) — not the offline share zip. |
merv.reports.server.host |
127.0.0.1 |
Java MervLocalReportServer bind host. Use 0.0.0.0 for LAN. |
merv.reports.server.port |
6174 |
Java local report server port (falls back to merv.reports.delete.port if set). |
Doctor setup
JS doctors ensure merv.emailable.html exists in merv.properties (default
false) without overwriting your value:
npx merv-client doctor setup
npx merv-client-playwright doctor setup
npx merv-client-cucumber doctor setup
Then set merv.emailable.html=true when you want auto emailable files on every run.
Troubleshooting
| Symptom | Fix |
|---|---|
| No Share / Download buttons | Open via merv show-report / MervLocalReportServer, not file://. Re-run tests so suite HTML is regenerated. |
| Share link fails for others | Restart with --host 0.0.0.0; check firewall; keep the server running; try port 80/443. |
| Download says prepare failed | Confirm the suite URL is under the same host as the report server (same origin /api/prepare-download). |
| No emailable after run | Set merv.emailable.html=true, or use Download (always regenerates). |
What’s next
- Merv-Logs guide · Centralized logs
- Merv-Local documentation hub
- Playwright guide · Cucumber-js guide
- Cucumber Java · TestNG · JUnit 5
- Merv-Server — hosted reports when LAN share is not enough
MERV