An ultra lightweight unit test director for Node.js.
Works well with any assertion library that throws errors, such as the Node.js assert
API and snapshot-assertion
.
Use coverage-node
to run your test script and report code coverage.
To install test-director
with npm, run:
npm install test-director --save-dev
Then, import and use the class TestDirector
.
A sync test:
import { equal } from "node:assert";
import TestDirector from "test-director";
const tests = new TestDirector();
tests.add("JavaScript addition.", () => {
equal(1 + 1, 2);
});
tests.run();
An async test:
import { ok } from "node:assert";
import TestDirector from "test-director";
const tests = new TestDirector();
tests.add("GitHub is up.", async () => {
const response = await fetch("https://github.com");
ok(response.ok);
});
tests.run();
Nested tests:
import TestDirector from "test-director";
const tests = new TestDirector();
tests.add("Test A.", async () => {
const tests = new TestDirector();
tests.add("Test B.", () => {
// …
});
tests.add("Test C.", () => {
// …
});
await tests.run(true);
});
tests.add("Test D.", () => {
// …
});
tests.run();
Supported runtime environments:
- Node.js versions
^16.9.0 || >= 18.0.0
.
Projects must configure TypeScript to use types from the ECMAScript modules that have a // @ts-check
comment:
compilerOptions.allowJs
should betrue
.compilerOptions.maxNodeModuleJsDepth
should be reasonably large, e.g.10
.compilerOptions.module
should be"node16"
or"nodenext"
.
The npm package test-director
features optimal JavaScript module design. These ECMAScript modules are exported via the package.json
field exports
: