You can install the package with npm
npm i -g @adeattwood/diff-cov
You can run it directly with npx
npx @adeattwood/diff-cov
For diff-cov to get the diff to your default branch, you must set up your
origin/HEAD
ref. To test to see if you have this set up, run.
git rev-parse --abbrev-ref origin/HEAD
This should print out the origin ref to your default branch for this repo it
will print origin/0.x
. If you get an unknown ref error, then you will need to
link origin/HEAD
to your default branch with the below command.
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/0.x
Note: Make sure you change
0.x
for your default branch name typicallymain
ordevelopment
Before you run diff-cov
you must run your test suite with coverage and output
a lcov
coverage file. You must also have all your changes committed to ensure
it's included in the output.
Once you are ready to go, you can run diff-cov
to print your diff highlighted
with coverage status. Any line not included in the coverage report will not be
highlighted and hit and missed lines will be colored green and red. You can use
the --coverageFile
flag to specify the path to your coverage report if its
not in the default location of ./lcov.info
diff-cov
diff-cov --coverageFile coverage/lcov.info
A report is printed at the bottom and colored with a threshold of 90%
anything below this percentage coverage will be colored red.
You can also print the coverage difference between to lcov.info files. To use this run your tests with coverage for a first time. After its finished you can copy your lcov.info file somewhere for later for example:
cp ./lcov.info /tmp/lcov.info
Then you can work on your test and run the tests once more with coverage to
generate you a new lcov.info
file. Then you can print the difference in
coverage between the two files with:
diff-cov --compare /tmp/lcov.info
This can come in handy when you need to find out what a test is testing. You can create your base coverage file, comment out a test, run the tests again and diff the results.