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');
}