Skip to content
testcritic

node:test

Node.js's built-in test runner. Zero dependencies, already installed.

Unit & ComponentOpen sourceSelf-hostable
Visit node:test

What it is

Since Node 18, the runtime ships its own test runner with describe/it, mocking, coverage, watch mode and a TAP reporter, available as the node:test module and the node --test flag. For libraries and services that want no test dependencies at all, it is now a legitimate option.

Best for

Node libraries and backend services that want a dependency-free test setup.

Where it is strong

  • No dependencies to install, audit or upgrade — a real supply-chain advantage for libraries.
  • Stable and versioned with the runtime itself.
  • Fast, with parallel execution by file and built-in coverage.

Where it falls short

  • No DOM environment, so it is a poor fit for front-end component testing.
  • Ecosystem of reporters and matchers is tiny compared to Jest or Vitest.
  • TypeScript requires a loader or a build step.

Pricing

Free and open source

Open source

Free tier: Everything, self-hosted

What drives the bill: Free and open source. You pay in engineering time and CI minutes.

Check current pricing on OpenJS Foundation’s site

Figures are indicative and were last reviewed August 2026. Vendors change pricing often; confirm before you commit.

Works with

GitHub ActionsNode.js

What people who use node:test say

No reviews of node:test yet. If you have used it in anger, yours would be the first.

Alternatives to node:test

If node:test is not the right fit, these solve the same problem differently.

Explore all alternatives