QUnitX
github.com
What it is
QUnitX lets teams write JavaScript or TypeScript tests in one file and run them with Node.js, Deno, or in a browser. The project says it needs no configuration files, transform pipeline, injected globals, or runtime dependencies, and that TypeScript runs as-is. Its assertions cover deep and partial equality, error matching, ordered steps, assertion counts, and per-test timeouts. Tests can be organized in nested modules with before, beforeEach, afterEach, and after hooks. The browser interface filters tests, shares filtered views by URL, reruns individual tests, and displays assertion differences. The linked qunitx-cli runs tests in headless Chromium, Firefox, or WebKit and streams TAP output. It also supports esbuild plugins, GitHub-annotated output, JUnit XML, V8 coverage reports, and a JavaScript API. QUnitX is free and lists an MIT license. 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. Its default standalone Chromium mode also needs system Chrome or CHROME_BIN. Browser coverage has a source-map limitation.
Spec sheet
- Purpose
- QUnitX lets teams write one JavaScript or TypeScript test file and run it unchanged with Node.js, Deno, or in a browser.Read 8 Oct 2026 · github.com
- Platforms
- The CLI README lists standalone binaries for Linux x64, macOS arm64, and Windows x64.Read 4 Oct 2026 · github.com
- Integrations
- The README documents installation through npm and Deno, and describes a JSR package published from CI with provenance.Read 8 Oct 2026 · github.com
- License
- The repository identifies its license as MIT.Read 8 Oct 2026 · github.com
- 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.Read 4 Oct 2026 · github.com
- Assertions
- Assertions include structural and partial equality, error matching, execution-order checks, assertion counts, and per-test timeouts.Read 8 Oct 2026 · github.com
- Browser options
- The documented browser runner supports Chromium, Firefox, and WebKit, plus watch mode, fail-fast, timeout, and lifecycle hooks.Read 8 Oct 2026 · github.com
- Browser runner
- The separate qunitx-cli bundles tests for a real browser and streams TAP to the terminal, with an optional live QUnit UI.Read 8 Oct 2026 · github.com
- Browser UI
- The browser UI can filter by module or test, preserve filters in shareable URLs, rerun individual tests, and show assertion diffs.Read 8 Oct 2026 · github.com
- Compatibility limits
- QUnitX requires Node.js 22 or later or Deno 2 or later, and ships as ESM only.Read 8 Oct 2026 · github.com
- 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.Read 8 Oct 2026 · github.com
- Coverage limit
- The QUnitX README says browser coverage has a source-map limitation because qunitx-cli bundles test files with esbuild.Read 4 Oct 2026 · github.com
- Hooks
- Nested modules support before, beforeEach, afterEach, and after hooks, with outer-first setup and inner-first teardown ordering.Read 8 Oct 2026 · github.com
- Install
- The README gives npm and Deno installation commands and requires Node.js 22 or later or Deno 2 or later.Read 4 Oct 2026 · github.com
- No configuration
- The README says QUnitX requires no config or setup files, runs TypeScript as-is, and has zero runtime dependencies.Read 8 Oct 2026 · github.com
- 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.Read 4 Oct 2026 · github.com
- Runners
- Node.js and Deno use their native test runners, while the browser path re-exports QUnit.Read 8 Oct 2026 · github.com
- 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.Read 8 Oct 2026 · github.com
- Setup
- The project says it needs no configuration, setup files, transform pipeline, injected globals, or runtime dependencies.Read 4 Oct 2026 · github.com
Strong points and limits
Strong points
- Runs JavaScript and TypeScript tests across three environments
- No configuration files or runtime dependencies
- Browser UI can rerun individual tests
- CLI supports JUnit XML and V8 coverage reports
- Free under the MIT license
Limits
- Core requires Node.js 22 or later
- CLI requires newer runtime versions
- Browser coverage has a source-map limitation
- Standalone Chromium mode requires system Chrome or CHROME_BIN
Who it suits
QUnitX suits JavaScript and TypeScript teams that want to run tests across Node.js, Deno, and browser environments. Its browser interface and CLI outputs may help teams that need filtered test views, coverage reports, or CI-oriented output.
Verdict
QUnitX offers a low-configuration path for JavaScript and TypeScript tests across multiple runtimes. Check the separate core and CLI requirements, as well as the browser coverage limitation, before adopting it.
Where Specifiction places it
- JavaScript Testing Frameworks#17 of 237.2