Runner is a wrapper test runner for node:test.
Runner is self-hosted, i.e. Runner runs its own tests.
npm i @stephen-shopopop/tbx --save-dev
tbx
Runner will automatically run all tests files matching *.test.{js}.
tbxts
tbx *.test.js *.test.mjs
Runner will automatically run all tests files matching *.test.{js|ts}.
--concurrency or -c, to set the number of concurrent tests. Defaults to the number of available CPUs minus one.--coverage or -C, enables code coverage. Default is false--watch or -w, re-run tests on changes. Default is false--only or -o, only run node:test with the only option set. Default is false--forceExit or -F, finished executing even if the event loop would otherwise remain active. Default is false--expose-gc, exposes the gc() function to tests. Default is false--reporter or -r, set up a reporter--pattern or -p, run tests matching the given glob pattern. Default is *.test.{js|ts}--name, run tests name matching the given glob pattern. Default is undefined. ex: --name="#myTag"--timeout or -t, timeouts the tests after a given time. Default is 30000ms--lines, set the lines threshold when check coverage is active; default is 80--functions, set the functions threshold when check coverage is active; default is 80--branches, set the branches threshold when check coverage is active; default is 80--rootDir, set rootDir to setup and teardown.Here are the available reporters:
tap: outputs the test results in the TAP format.spec: outputs the test results in a human-readable format.dot: outputs the test results in a compact format, where each passing test is represented by a ., and each failing test is represented by a X.junit: outputs test results in a jUnit XML format.
├── src
│ └── lib
│ ├── math.ts
│ └── math.test.ts
├── test <rootDir>
│ ├── setup.js
│ ├── teardown.js
│ └── components
│ └── compute.test.ts
└── tsconfig.json (typescript project)
Create file setup.js
// ️️️✅ Best Practice: force UTC
process.env.TZ = 'UTC';
export default function () {
console.time('global-setup');
// ... Put your setup
// 👍🏼 We're ready
console.timeEnd('global-setup');
}
Create file teardown.js
export default function () {
console.time('global-teardown');
// ... Put your teardown
// 👍🏼 We're ready
console.timeEnd('global-teardown');
}