Pure Test
Pure Test is a free, minimal test runner for JavaScript projects across Node.js, Deno, Bun, Cloudflare Workers, and browsers.
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.
| Plan | Price | What it gives you |
|---|---|---|
| Apache-2.0 open-source software | Free | No 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
- 1

QUnit
Free planAndroidiOSWebAPI7.4Free plan - 2

Web Test Runner
Free planWebLinuxmacOSSelf-hosted6.9Free plan - 3

Cucumber.js
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 4
Karma
Free planAndroidiOSWebLinux6.7Free plan - 5

Vitest
Free planWebLinuxmacOSWindows6.6Free plan - 6
Jasmine
Free planWebLinuxmacOSWindows6.5Free plan
