FREEDOM251

Freedom251 › JavaScript Testing Frameworks

QUnitX

Free plan LinuxMacWebWindows

Visit QUnitX Alternatives

QUnitX's own site

What QUnitX is

QUnitX is a free, open-source testing tool for JavaScript and TypeScript projects. It lets a team write a test file and run it with Node.js, Deno, or in a browser. The project describes a setup without configuration files, transform pipelines, injected globals, or runtime dependencies, and says TypeScript can run as-is. The core requirements are Node.js 22 or later or Deno 2 or later; QUnitX is distributed as ESM only.

Its assertion API includes deep and partial equality, error matching, ordered steps, assertion-count checks, and per-test timeouts. Nested test modules support before, beforeEach, afterEach, and after hooks. In a browser, users can filter tests, share filtered views by URL, rerun individual tests, and inspect assertion differences. The linked qunitx-cli runs tests in headless Chromium, Firefox, or WebKit and can stream TAP output to a terminal. It also supports esbuild plugins for custom loaders, GitHub-annotated output, JUnit XML, V8 coverage reports, and a JavaScript API. The CLI has higher runtime requirements than the core, and its bundled browser tests have a source-map limitation affecting browser coverage. The repository lists an MIT license.

Who it suits

QUnitX suits JavaScript or TypeScript teams that want to run tests across Node.js, Deno, and browser environments from a shared test file. It is a fit for teams comfortable with ESM and the stated runtime requirements, including those who need browser runners or coverage reporting.

What it does well

  • Runs JavaScript and TypeScript tests with Node.js, Deno, or a browser.
  • Needs no configuration files or runtime dependencies, according to the project.
  • Includes assertions for equality, errors, ordered steps, counts, and timeouts.
  • Browser UI can filter, share, rerun tests, and show assertion differences.
  • CLI supports Chromium, Firefox, WebKit, TAP, JUnit XML, and V8 coverage.

What to know first

  • Core requires Node.js 22 or later or Deno 2 or later.
  • CLI requires Node.js 24 or later or Deno 2.7 or later.
  • QUnitX ships as ESM only.
  • Browser coverage has a source-map limitation due to esbuild bundling.

Limits

The core needs Node.js 22 or later or Deno 2 or later, while the CLI needs Node.js 24 or later or Deno 2.7 or later. Browser coverage has a source-map limitation because the CLI bundles test files with esbuild. The standalone CLI's default Chromium mode also requires system Chrome or CHROME_BIN.

Getting started

  1. Visit https://github.com/izelnakri/qunitx.
  2. Install QUnitX using the npm or Deno command in its README.
  3. Use Node.js 22 or later or Deno 2 or later for the core.
  4. Write JavaScript or TypeScript tests and run them with Node.js, Deno, or in a browser.
  5. For the linked CLI, use Node.js 24 or later or Deno 2.7 or later.
  6. For standalone default Chromium mode, provide system Chrome or CHROME_BIN.

Verdict

Choose QUnitX if your team wants one JavaScript or TypeScript test file to work across Node.js, Deno, and browser runners, with an MIT-licensed open-source project. Look elsewhere if your runtime is below its requirements, you need a non-ESM package, or browser source maps are essential to coverage reporting.

Questions

Is QUnitX free?

Yes. It is free and the GitHub repository lists an MIT license.

Which environments can run QUnitX tests?

The project supports Node.js, Deno, and browsers. The linked CLI runs tests in headless Chromium, Firefox, or WebKit.

What are the runtime requirements?

The core requires Node.js 22 or later or Deno 2 or later. The CLI requires Node.js 24 or later or Deno 2.7 or later.

Does QUnitX require configuration or runtime dependencies?

The project says it needs no configuration or setup files and has zero runtime dependencies. It also says TypeScript runs as-is.

What integrations and reports does the CLI support?

The CLI supports esbuild plugins, GitHub-annotated output, JUnit XML, V8 coverage reports, and a JavaScript API.

Does browser coverage have a limitation?

Yes. Browser coverage has a source-map limitation because qunitx-cli bundles test files with esbuild.

Facts from QUnitX's own pages

Assertions
Assertions include structural and partial equality, error matching, execution-order checks, assertion counts, and per-test timeouts. · github.com, 8 Oct 2026
Browser options
The documented browser runner supports Chromium, Firefox, and WebKit, plus watch mode, fail-fast, timeout, and lifecycle hooks. · github.com, 8 Oct 2026
Browser runner
The separate qunitx-cli bundles tests for a real browser and streams TAP to the terminal, with an optional live QUnit UI. · github.com, 8 Oct 2026
Browser UI
The browser UI can filter by module or test, preserve filters in shareable URLs, rerun individual tests, and show assertion diffs. · github.com, 8 Oct 2026
Compatibility limits
QUnitX requires Node.js 22 or later or Deno 2 or later, and ships as ESM only. · github.com, 8 Oct 2026
Coverage
The README documents coverage with c8 for Node.js and Deno and identifies browser coverage as a limitation because bundling with esbuild loses source mapping. · github.com, 8 Oct 2026
Coverage limit
The QUnitX README says browser coverage has a source-map limitation because qunitx-cli bundles test files with esbuild. · github.com, 4 Oct 2026
Hooks
Nested modules support before, beforeEach, afterEach, and after hooks, with outer-first setup and inner-first teardown ordering. · github.com, 8 Oct 2026
Install
The README gives npm and Deno installation commands and requires Node.js 22 or later or Deno 2 or later. · github.com, 4 Oct 2026
Integrations
The README documents installation through npm and Deno, and describes a JSR package published from CI with provenance. · github.com, 8 Oct 2026
License
The repository identifies its license as MIT. · github.com, 8 Oct 2026
Maker
The repository identifies izelnakri as its owner and describes QUnitX as a project by its maker; it provides no headquarters or founding date in the opened pages. · github.com, 4 Oct 2026
No configuration
The README says QUnitX requires no config or setup files, runs TypeScript as-is, and has zero runtime dependencies. · github.com, 8 Oct 2026
Platforms
The CLI README lists standalone binaries for Linux x64, macOS arm64, and Windows x64. · github.com, 4 Oct 2026
Purpose
QUnitX lets teams write one JavaScript or TypeScript test file and run it unchanged with Node.js, Deno, or in a browser. · github.com, 8 Oct 2026
Requirements
The CLI requires Node.js 24 or later or Deno 2.7 or later; its default Chromium browser mode also requires system Chrome or CHROME_BIN when using the standalone binary. · github.com, 4 Oct 2026
Runners
Node.js and Deno use their native test runners, while the browser path re-exports QUnit. · github.com, 8 Oct 2026
Runtime difference
The README notes that Node runs todo test bodies while ignoring their failures, whereas Deno maps todo and skip to ignored tests whose bodies do not run. · github.com, 8 Oct 2026
Setup
The project says it needs no configuration, setup files, transform pipeline, injected globals, or runtime dependencies. · github.com, 4 Oct 2026

Where QUnitX stands on Freedom251

Look at these too