README
Jest Performance Test Logger
A small custom reporter to optimize the worker count on your laptop, computer, containers, or servers.
Log simple stats to a log.csv
file in the root of the repo that is using the custom reporter.
I thought logging to a csv file would be useful, if user wanted to keep info beyond the command line output, for analysis in a spreadsheet program.
Stats recorded: total tests, total suites, total time in seconds, max workers for the run
Installing & Usage with Jest
Install:
npm i --save-dev jest-reporter-perf-stats
add the custom reporter to your
jest.config.js
module.exports = {
...
reporters: ['default', 'jest-reporter-perf-stats'],
...
};
- Run the performance benchmark with the included script:
./node_modules/jest-reporter-perf-stats/perf.sh <maxWorkers> <number of iterations>
Example: ./node_modules/jest-reporter-perf-stats/perf.sh 1 1
- View the results in log.csv, logging the following attributes:
- total tests in test run
- total suites in test run
- test run duration in seconds
- number of workers in test run
Contributing
PRs welcome!
Sanity check that reporter works:
- Clone repo and install dependencies
npm i
- Run
npm run test_one_worker
- Ensure log.csv outputs correctly and CLI outputs something akin to:
Test Suites: 1 failed, 1 passed, 2 total
Tests: 2 failed, 2 skipped, 1 todo, 3 passed, 8 total
Snapshots: 0 total
Time: 0.815 s, estimated 1 s
Ran all test suites.
---------------
total time for run is 0.818 seconds for 1 maxWorkers.
Total tests: 8 Total suites: 2.
---------------