QUnitX vs uvu
QUnitX
github.comuvu
github.comSide by side
| Figure | QUnitX | uvu |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| Plans published | 0 | 1 |
| Spec score · JavaScript Testing Frameworks | 7.2 (#17) | 7.6 (#11) |
| Assertions | Assertions include structural and partial equality, error matching, execution-order checks, assertion counts, and per-test timeouts. | The optional `uvu/assert` module works in Node.js and browser contexts, and the documentation says existing assertion libraries can be used instead. |
| Install | The README gives npm and Deno installation commands and requires Node.js 22 or later or Deno 2 or later. | The README gives `npm install --save-dev uvu` as the installation command. |
| Integrations | The README documents installation through npm and Deno, and describes a JSR package published from CI with provenance. | The README demonstrates using `uvu` with Node.js and shows `esm` as a preload for legacy Node.js versions. |
| License | The repository identifies its license as MIT. | The repository identifies uvu as MIT licensed. |
| Purpose | QUnitX lets teams write one JavaScript or TypeScript test file and run it unchanged with Node.js, Deno, or in a browser. | uvu is a fast, lightweight test runner for Node.js and the browser. |
Plans
In their own words
QUnitX
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.
uvu
uvu is a free, lightweight test runner for Node.js and browser projects. It supports individually executable test files, asynchronous tests that may return Promises, native ES modules and a familiar API. Tests can be grouped into named suites or registered through a simpler test interface, and snapshot testing is supported. Each file is self-contained and can also be run directly with Node.js. The optional CLI collects and executes suites, with options to stop after the first failure, ignore patterns, preload modules, set a working directory and colorize output. When a directory is specified, file matching takes a regular-expression pattern rather than relying on glob patterns. The optional assertion module works in browsers and can be swapped for another library, including Node.js’s native assert. Installation uses `npm install --save-dev uvu`. Package metadata specifies Node.js version `>=8`; the repository identifies the project as MIT licensed and credits Luke Edwards.