npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

velvet-report

v2.1.1

Published

VelvetReport — Universal JUnit XML → self-contained offline HTML test reporter. Works with Jest, Playwright, Cypress, Mocha and any JUnit-compatible tool.

Readme

velvet-report

npm version npm downloads node License: MIT Zero dependencies

Turn any JUnit XML into a stunning, self-contained, 100% offline HTML test report — with one command.

velvet-report is a universal JUnit XML → HTML test reporter for Jest, Playwright, Cypress, Mocha, Jasmine, Karma, Vitest, TestNG, JUnit 5 and any tool that emits JUnit XML. No server. No upload. No internet. Just a single beautiful .html file you can open, email, or commit — a modern, offline Allure / Extent Report alternative.

npm install --save-dev velvet-report

Why velvet-report

  • 📴 100% offline & self-contained — one HTML file, all CSS/JS/data inlined. Works with zero network.
  • 🧩 Framework-agnostic — any JUnit XML in, one consistent dashboard out.
  • Zero runtime dependencies — tiny install, nothing to configure.
  • 📈 History & flaky detection — trends across runs, auto-flagged flaky tests.
  • 🎯 CI-friendly — drop it in posttest and ship an artifact every build.
  • 🌍 Same engine on npm, PyPI & Maven — identical reports across Node, Python, and Java.

Quickstart

1. Generate from a JUnit XML file

npx velvet-report generate junit.xml ./reports
# → ./reports/velvetreport.html  ✓  (open it in any browser)

2. Wire it into your test script

{
  "scripts": {
    "test": "jest --reporters=default jest-junit",
    "posttest": "velvet-report generate junit.xml ./reports --open"
  }
}
npm test
# → runs tests, then opens ./reports/velvetreport.html

Point it at a file or a directory of JUnit XMLs — both work:

velvet-report generate ./test-results/        ./reports
velvet-report generate ./junit.xml            ./reports --title "Web E2E"

CLI

velvet-report generate <junit.xml | dir/> [output-dir] [options]

OPTIONS
  --title <text>    Report title            (default: XML filename)
  --history <dir>   History directory       (default: <output>/.history)
  --open            Open the report in your browser after generating
  --version, -v     Print version
  --help,    -h     Show help

COMMANDS
  generate                Build a report from JUnit XML   (alias: gen)
  clear-history [dir]     Delete saved history runs
  info                    Show version and install path
  • Default output directory: velvetreport-output/
  • Output file: velvetreport.html

Programmatic API

const { generate, buildEmailHtml } = require('velvet-report');

// Generate the full HTML dashboard
generate('junit.xml', './reports', {
  title: 'Nightly E2E',
  historyDir: './reports/.history',
  open: false,
});

// Build a lightweight, email-ready HTML summary
const emailHtml = buildEmailHtml('junit.xml');

What's in the report

  • KPI cards — total, passed, failed, errors, skipped, retries, pass rate, avg/total duration, stability score, flaky %, reproducibility.
  • Risk badge — STABLE / UNSTABLE / HIGH RISK.
  • Expandable suite tree — per-test Error / Steps / Logs / Console / Attachments / stderr tabs.
  • Flaky detection — auto-compared against previous runs, with per-test history dots.
  • 10 charts — pass/fail donut, duration histogram, volume & outcome trends, duration trends, duration by spec/describe, worker & browser distribution, top-10 slowest, suite health.
  • Result heatmap + collapsible mind map navigation.
  • Failure analysis — auto-classified Assertion / Timeout / Network / Script.
  • History & trends — compact JSON in .history/ (~3 KB/run, up to 30 runs). Commit it for team-wide trends.
  • Export — HTML, CSV, JSON, or email-ready summary.

Embedding screenshots / attachments

Print a marker to stdout during your test and velvet-report embeds it:

const b64 = (await page.screenshot()).toString('base64');
process.stdout.write(`[[ATTACHMENT|screenshot.png|${b64}]]\n`);

Supported frameworks

Jest · Playwright · Cypress · Mocha · Jasmine · Vitest · Karma · WebdriverIO · TestNG · JUnit 5 · Maven Surefire · Gradle · pytest · Robot Framework · RSpec · PHPUnit · gotestsum · xUnit · NUnit — and anything that outputs JUnit XML.


Requirements

  • Node.js >= 14

Links

  • 🌐 Website: https://velvetreport.dev
  • 📦 npm: https://www.npmjs.com/package/velvet-report
  • 🐍 PyPI: https://pypi.org/project/velvet-report/
  • 💻 Source: https://github.com/DwivediTarun/velvet_report

License

MIT © VelvetReport Contributors


Keywords: junit xml to html · junit html reporter · jest html report · playwright html report · cypress test report · mocha reporter · vitest report · offline html test report · self-contained test report · allure alternative · extent report alternative · ci test dashboard · flaky test detection · test history · node test reporter · javascript test report generator.