EVERYTHING XIAOMI
Get listed

Pure Test

Pure Test is a free, minimal test runner for JavaScript projects across Node.js, Deno, Bun, Cloudflare Workers, and browsers.

Place
#7 of 23
Score
6.5
Pure Test's website

What Pure Test is

Pure Test is a free, minimal test runner for JavaScript projects across Node.js, Deno, Bun, Cloudflare Workers, and browsers. Its API includes suites, assertions, lifecycle hooks, spies, fake timers, and retry and timeout options. The CLI supports multiple reporters, test filters, file watching, sharding, and fail-fast runs. For CI, its sharding option divides test files across jobs and exits cleanly when a shard has no files. TypeScript discovery requires the `--ts` option on Node.js, while Deno and Bun discover TypeScript automatically. A Deno adapter registers tests as `Deno.test()` calls for use with `deno test` and its filtering and IDE workflows. The README includes migration guidance for Jest and Vitest and notes compatibility with common mock methods. Pure Test does not isolate tests, so lifecycle hooks can be used to manage test state. It does not support module mocking, snapshot tests, built-in coverage, worker isolation, or configuration files. The project is marked beta, and its APIs may change. It is Apache-2.0 licensed, with no paid plans stated.

Good

  • Works across Node.js, Deno, Bun, Workers, and browsers.
  • CLI includes sharding and file watching.
  • Includes spies, fake timers, hooks, and assertions.
  • Apache-2.0 licensed and free.

Watch out

  • Tests are not isolated.
  • No module mocking or snapshot testing.
  • Built-in coverage and worker isolation are absent.
  • Project is beta and APIs may change.

Who it suits

Pure Test may fit JavaScript developers who need a small runner across several runtimes and want CLI features such as sharding or file watching. Its limits matter for teams that require isolation, snapshot tests, built-in coverage, or module mocking.

Verdict

Pure Test covers core test-running tasks across multiple JavaScript runtimes and includes useful CLI and CI options. Check its missing isolation and testing features, as well as beta status, against your project needs.

Plans and prices

From Pure Test's own pricing page, checked 7 Oct 2026.

All about pricing
PlanPriceWhat it gives you
Apache-2.0 open-source softwareFreeNo paid plans or pricing stated

The facts

Each one read from Pure Test's own pages, with the date it was checked.

What it does

CI use
The CLI supports `--shard` to split test files across jobs and exits cleanly for empty shards.checked 7 Oct 2026
CLI
The CLI supports multiple reporters, test filters, file watching, sharding, and fail-fast execution.checked 7 Oct 2026
Deno integration
A Deno adapter registers tests as `Deno.test()` calls for use with `deno test` and its filtering and IDE workflows.checked 7 Oct 2026
Excluded features
The README says the runner will not support module mocking, snapshot testing, built-in coverage, worker isolation, or configuration files.checked 7 Oct 2026
Installation
The README gives `npm install @igorjs/pure-test --save-dev` as the installation command.checked 7 Oct 2026
Isolation limitation
The runner does not isolate tests; the README recommends using lifecycle hooks to manage test state.checked 7 Oct 2026
Jest and Vitest migration
The README provides migration guides and says mock APIs are compatible for common methods such as `mockReturnValue` and `mock.calls`.checked 7 Oct 2026
License
The repository identifies the project as Apache-2.0 licensed.checked 7 Oct 2026
Project status
The README identifies the project as beta and says its APIs may change.checked 7 Oct 2026
Purpose
Pure Test is a minimal, zero-dependency, cross-runtime test runner.checked 7 Oct 2026
Runtime support
The project says it works on Node.js, Deno, Bun, Cloudflare Workers, and browsers.checked 7 Oct 2026
Testing features
Its API includes test suites, assertions, lifecycle hooks, spies, fake timers, and retry and timeout options.checked 7 Oct 2026
TypeScript
TypeScript test discovery is opt-in with `--ts` on Node.js and automatic on Deno and Bun.checked 7 Oct 2026

Money

Free plan
Yeschecked 20 Sep 2026

The company

Maker and company details
The opened repository page identifies the owner as `igorjs` but does not state a maker name, headquarters, or founding date.checked 7 Oct 2026
The full review of Pure Test

Pure Test is a free, zero-dependency JavaScript test runner built to span Node.js, Deno, Bun, Cloudflare Workers, and browsers. It is aimed at developers who prefer a compact, cross-runtime tool and are willing to control test state explicitly. The strongest case is a consistent CLI and API across runtimes; projects needing automatic isolation, snapshots, coverage, or a settled API should choose another runner.

Overview

Pure Test keeps its core deliberately small while covering the mechanics of ordinary unit testing. Its Apache-2.0 license and free distribution remove procurement barriers, and the same project can address server, edge, and browser-oriented JavaScript environments. That breadth is valuable for multi-runtime codebases, but the beta status means APIs may change, an important consideration for teams that prioritize long-term stability.

Key features

The API supplies test suites, assertions, lifecycle hooks, spies, fake timers, and retry and timeout controls. These features are enough for conventional unit and integration checks without adding dependencies. There is no module mocking, snapshot testing, built-in coverage, worker isolation, or configuration-file support. If those are central to your workflow, Pure Test will require supplementary tooling or custom conventions rather than providing a complete testing stack.

Its command-line interface offers multiple reporters, test filtering, file watching, sharding, and fail-fast execution. Sharding divides test files among CI jobs and exits cleanly when a shard receives no files, avoiding needless pipeline failures in uneven distributions. The runner does not isolate tests, so mutable state can leak from one case to another. Lifecycle hooks can contain that risk, but teams wanting automatic per-test isolation should look elsewhere.

TypeScript discovery is enabled with --ts on Node.js and automatic on Deno and Bun. A Deno adapter registers cases as Deno.test() calls, preserving Deno's native filtering and IDE-oriented workflows. Migration guidance for Jest and Vitest is included, with compatible common mock methods such as mockReturnValue and mock.calls; that can reduce rewrite effort, although it does not add the missing mocking, snapshot, or coverage systems.

Pricing

Pure Test is free software with no paid plans and no free trial. The sole plan, Apache-2.0 open-source software, costs free. There are no seat quotas, usage allowances, renewal charges, or paid tiers to weigh. It fits individual developers, open-source projects, and teams that can operate a beta dependency; organizations requiring commercial support terms or a fixed feature roadmap should account for that absence.

Platforms

Pure Test supports Linux, macOS, Windows, self-hosted deployments, and web use. Runtime coverage includes Node.js, Deno, Bun, Cloudflare Workers, and browsers. Installation through npm uses npm install @igorjs/pure-test --save-dev. Parallel execution is supported, with CLI sharding providing the clearest benefit for continuous-integration pipelines.

Who it's for

Choose Pure Test when one lightweight runner must cover several JavaScript runtimes, your CI benefits from sharding and clean empty-shard handling, and your team is comfortable enforcing state cleanup with hooks. It is also a sensible migration candidate for Jest or Vitest users whose needs fit the compatible common mock calls and whose projects do not depend on snapshots or coverage.

It is a poor match for suites that require process or worker isolation, module mocking, snapshot assertions, built-in coverage reports, or configuration files. The beta label and potentially changing APIs further favor experimental, internal, or fast-moving projects over large installations demanding conservative upgrades.

Pros and cons

Pros

  • Cross-runtime reach: one runner targets Node.js, Deno, Bun, Cloudflare Workers, and browsers.
  • Useful CI controls: sharding, fail-fast mode, filtering, and clean handling of empty shards support distributed pipelines.
  • Focused core: suites, assertions, hooks, spies, fake timers, retries, and timeouts cover routine test work without dependencies.
  • Migration assistance: Jest and Vitest guides plus common mock-method compatibility can shorten transitions.

Cons

  • No isolation: shared state can contaminate later tests unless hooks enforce cleanup.
  • Important omissions: module mocking, snapshots, coverage, worker isolation, and configuration files are intentionally excluded.
  • Beta API: changing interfaces increase maintenance risk for teams seeking a stable foundation.

Alternatives

Vitest is a free, open-source option for Linux, macOS, web, and Windows when you want a mainstream alternative with no stated plan limits. QUnit suits projects seeking a free open-source framework distributed through CDN, npm, and Yarn across a particularly broad platform range. Karma is free and widely platformed, but it is deprecated and receives no new features or general bug fixes.

Web Test Runner is another free open-source choice for Linux, macOS, self-hosted, and web environments. Cucumber.js is free and installable as an npm development dependency when that project is the better fit. Jasmine provides a free route across Linux, macOS, web, and Windows, while Testem is a free MIT-licensed JavaScript test runner. Intern is a free option spanning Android, iOS, Linux, macOS, self-hosted, web, and Windows.

Verdict

Pure Test is best for developers who need a small, dependency-free runner across multiple JavaScript runtimes and value practical CLI sharding in CI. Choose it for focused suites where hooks can manage shared state and beta APIs are acceptable. Look elsewhere when isolation, snapshots, coverage, module mocking, or a mature, stable platform is a requirement.

Alternatives to Pure Test

All alternatives
  1. 1QUnit logo

    QUnit

    Free planAndroidiOSWebAPI
    7.4Free plan
  2. 2Web Test Runner logo

    Web Test Runner

    Free planWebLinuxmacOSSelf-hosted
    6.9Free plan
  3. 3Cucumber.js logo

    Cucumber.js

    Free planLinuxmacOSSelf-hostedWindows
    6.8Free plan
  4. 4

    Karma

    Free planAndroidiOSWebLinux
    6.7Free plan
  5. 5Vitest logo

    Vitest

    Free planWebLinuxmacOSWindows
    6.6Free plan
  6. 6

    Jasmine

    Free planWebLinuxmacOSWindows
    6.5Free plan