UNPKG

jest-timing-reporter

Version:

A Jest reporter that collects test execution time into snapshots files as JSON which can be used later with [jest-timing-action](https://github.com/javierfernandes/jest-timing-action).

74 lines (57 loc) 2.17 kB
# jest-timing-reporter A Jest reporter that collects test execution time into snapshots files as JSON which can be used later with [jest-timing-action](https://github.com/javierfernandes/jest-timing-action). # Usage Install with ```bash npm i --save-dev jest-timing-reporter ``` or ```bash yarn add -D jest-timing-reporter ``` Then edit the jest config in your `package.json` (if that's the case) ```json { "jest": { "reporters": [ "default", "jest-timing-reporter" ] }, } ``` Now you can run `yarn test` or `npm run test` and check that it generated tsnapshot files for each test file. Make sure you have those files tracked in git. # Output It works pretty similar to jest's snapshots. Just that * it will write snapshots on every run * it won't check against the previous snapshot at all (that's done by [jest-timing-action](https://github.com/javierfernandes/jest-timing-action) for information purpose when comparing a PR against its base branch) Here is an example folder structure showing the `__tsnapshots__` folder that contains each test file's snapshot ```bash . ├── LICENSE ├── README.md ├── __tsnapshots__ │   └── index.test.tsnapshot ├── index.js ├── index.test.js ├── package.json ├── some │   └── more │   ├── __tsnapshots__ │   │   └── more.test.tsnapshot │   ├── more.test.js │   └── tests │   ├── __tsnapshots__ │   │   └── good.test.tsnapshot │   └── good.test.js ├── yarn-error.log └── yarn.lock ``` # Further Work Currently this is just a small script done as a proof-of-concept to explore jest, GH actions, GH API, etc. plus providing some basic "smoke-test" like information to try to detect changes that impact performance of your code. For sure this could evolve to a much more useful "continuous code quality measure" solution. * Handle tests being renamed * Handle it being moved into a different describe or a new describe * Handle file moved (remove old file) * Handle file deleted (remove old file)