An ultra lightweight unit test director for Node.js.
MIT License
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:
^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 be true
.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
: