uvu
What it is
uvu is a free test runner for Node.js and browser projects. It supports native ES modules, asynchronous test callbacks that can return Promises, individually executable test files, and familiar ways to organize tests: named suites or the simpler `test` interface. Its optional CLI can collect and run suites, with controls to stop after the first failure, ignore patterns, preload modules, set a working directory, and colorize output. When you specify a directory, file matching uses regular-expression patterns rather than glob patterns. Test files are self-contained and can also be run individually with Node.js. The optional `uvu/assert` module is browser-compatible and can be replaced with another assertion library, including Node.js's native `assert`. Snapshot testing is supported. Install it with `npm install --save-dev uvu`; the CLI is optional. The project identifies uvu as MIT-licensed and credits Luke Edwards. Package metadata specifies Node.js version `>=8`.
For and against
For
- Runs test files individually or as suites.
- Supports async tests and native ES modules.
- Browser-compatible, including its assertion module.
- CLI offers file selection and execution options.
- Supports snapshot testing.
Against
- Node.js version `>=8` is specified.
- The CLI is optional, not required.
The verdict
uvu brings test execution for Node.js and browser projects together with optional CLI controls and interchangeable assertions. Its individually runnable files and async test support suit projects that want those capabilities without making the CLI mandatory.
Who it suits
uvu suits developers building Node.js or browser projects who want to run tests in separate files, organize suites, or use asynchronous tests. It also fits projects that need browser-compatible assertions or snapshot testing.
Plans and prices
uvu
MIT-licensed test runner for Node.js and the browser
Read 8 Oct 2026 · github.com
On the record
- Assertions
- The optional `uvu/assert` module works in Node.js and browser contexts, and the documentation says existing assertion libraries can be used instead.github.com · read 8 Oct 2026
- Async tests
- Test callbacks may be asynchronous and may return a Promise.github.com · read 8 Oct 2026
- Browser support
- The README says uvu is browser-compatible, and its assertion module is also browser-compatible.github.com · read 7 Oct 2026
- CLI
- The CLI collects and executes test suites, and using it is optional because test files can be run directly with Node.js.github.com · read 8 Oct 2026
- CLI options
- The CLI supports options to stop on the first failure, ignore patterns, preload modules, set a working directory, and colorize output.github.com · read 7 Oct 2026
- Features
- Its listed features include individually executable test files, async/await tests, native ES Modules, browser compatibility, and a familiar API.github.com · read 8 Oct 2026
- File isolation
- The documentation says test files are self-contained and can be run individually with Node.js.github.com · read 7 Oct 2026
- File matching
- The CLI intentionally does not rely on glob patterns and accepts a regular-expression pattern when a directory is specified.github.com · read 7 Oct 2026
- Glob behavior
- The CLI intentionally does not rely on glob patterns and accepts regular-expression patterns instead.github.com · read 8 Oct 2026
- Install
- The README gives `npm install --save-dev uvu` as the installation command.github.com · read 8 Oct 2026
- Installation
- The README gives npm install --save-dev uvu as its installation command.github.com · read 7 Oct 2026
- Integrations
- The README demonstrates using `uvu` with Node.js and shows `esm` as a preload for legacy Node.js versions.github.com · read 8 Oct 2026
- Intended users
- The project describes uvu as a test runner for Node.js and browser projects.github.com · read 7 Oct 2026
- License
- The repository identifies uvu as MIT licensed.github.com · read 8 Oct 2026
- Maintainer
- The README credits Luke Edwards and links to his personal site, which identifies him as a full stack developer and web designer in San Francisco.lukeed.com · read 8 Oct 2026
- Organization
- Tests can be organized into named suites or registered through the simpler `test` interface.github.com · read 8 Oct 2026
- Purpose
- uvu is a fast, lightweight test runner for Node.js and the browser.github.com · read 8 Oct 2026
- Runtime requirement
- The package metadata specifies Node.js version `>=8`.github.com · read 8 Oct 2026