@stephen-shopopop/tbx
    Preparing search index...

    @stephen-shopopop/tbx

    tbx

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