1.0.3 • Published 6 years ago

jest-regression v1.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

Jest regression

Simple zero dependency tool to check for test regression between commits.

Features:

  • create basic json report for current project state and save it under current checked out git commit id
  • check for test regression between two commits node ./node_modules/.bin/jest-regression <fom commit> <to commit>

Installation

npm install jest-regression

Running

First create report for your current project state. Just simply run all tests with jest. Report with name of current checked out git commit id will be saved inside ./jest-regression folder (you can change default folder via config).

For instruction purposes lets say commit id is 79262dc. Example: ./jest-regression/79262dc.json

When you our your co-worker do next commit (lets say it's 4930822), just simply run tests again. Report will saved: Example: ./jest-regression/4930822.json

Now you can make regression test with command jest-regression <fom commit> <to commit>.

Example:

$ node ./node_modules/.bin/jest-regression 79262dc 4930822

... or if you add "jest-regression": "jest-regression" under scripts in package.json:

<package.json>

{
 ...
 "scripts": {
    "jest-regression": "jest-regression"
 },
 ...
}
$ npm run jest-regression 79262dc 4930822

Example output:

$ jest-regression "79262dc" "4930822"

Checking for test regression from commit 5751a1a to 01d30c6.
Regression detected.
-----------
 FAILED    Test suite A Test 001
/path/to/test/file.spec.ts

 FAILED    Test suite A Test 002
/path/to/test/file.spec.ts

 FAILED    Test suite B Test 001
/path/to/test/file.b.spec.ts

Config

By default you don't have to configure anything.

KeyDefault valueDescription
testResultsProcessor/used to call next results processor, for example jest-html-reporter
skipfalseto skip jest-regression
skipNextProcessorfalseto prevent running next results processor
outputDir'./jest-regression'save directory for jest-regression

Configuration is done via package.json

Example - changing output dir:

{
 ...
 "jest-regression": {
    "outputDir": "./jest-regression"
  }
  ...
}

Example - passing results to jest-html-reporter package:

{
 "scripts": {
    "jest-regression": "jest-regression"
 },
    
 ...
 "jest-regression": {
    "testResultsProcessor": "./node_modules/jest-html-reporter",
    "skipNextProcessor": false,
  }
  ...
}

Example - skip report creation:

{
 ...
 "jest-regression": {
    "skip": true
  }
  ...
}

Full example:

{
 "scripts": {
    "jest-regression": "jest-regression"
 },
    
 ...
 "jest-regression": {
    "testResultsProcessor": "./node_modules/jest-html-reporter",
    "skip": false,
    "skipNextProcessor": false,
    "outputDir": "./jest-regression"
  }
  ...
}