@stephen-shopopop/tbx
v0.14.0
Published
node:test wrapper
Downloads
111
Readme
tbx
Runner is a wrapper test runner for node:test.
Runner is self-hosted, i.e. Runner runs its own tests.
Install
npm i @stephen-shopopop/tbx --save-devUsage
javascript
tbxRunner will automatically run all tests files matching *.test.{js}.
typescript
tbxtsRun multiple specify files
tbx *.test.js *.test.mjsRunner will automatically run all tests files matching *.test.{js|ts}.
Options
--concurrencyor-c, to set the number of concurrent tests. Defaults to the number of available CPUs minus one.--coverageor-C, enables code coverage. Default isfalse--watchor-w, re-run tests on changes. Default isfalse--onlyor-o, only runnode:testwith theonlyoption set. Default isfalse--forceExitor-F, finished executing even if the event loop would otherwise remain active. Default isfalse--expose-gc, exposes the gc() function to tests. Default isfalse--reporteror-r, set up a reporter--patternor-p, run tests matching the given glob pattern. Default is*.test.{js|ts}--name, run tests name matching the given glob pattern. Default isundefined. ex:--name="#myTag"--timeoutor-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.
Reporters
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
Setup
.
├── 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');
}Teardown
Create file teardown.js
export default function () {
console.time('global-teardown');
// ... Put your teardown
// 👍🏼 We're ready
console.timeEnd('global-teardown');
}