2022-10-24 18:48:49 +00:00
|
|
|
<div align="center">
|
|
|
|
|
|
|
|
|
|
# Diff Cov
|
|
|
|
|
|
2023-08-16 18:39:25 +00:00
|
|
|
Simple CLI to print git and lcov diffs highlighted with test coverage status
|
2022-10-24 18:48:49 +00:00
|
|
|
|
2022-10-25 06:28:56 +00:00
|
|
|

|
|
|
|
|
|
2022-10-24 18:48:49 +00:00
|
|
|
</div>
|
2022-10-25 06:28:56 +00:00
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
You can install the package with npm
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm i -g @adeattwood/diff-cov
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
You can run it directly with `npx`
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npx @adeattwood/diff-cov
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/0.x
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> **Note**:
|
|
|
|
|
> Make sure you change `0.x` for your default branch name typically `main` or
|
|
|
|
|
> `development`
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
2023-08-16 18:39:25 +00:00
|
|
|
### Git diff
|
|
|
|
|
|
2022-10-25 06:28:56 +00:00
|
|
|
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`
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
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.
|
2023-08-16 18:39:25 +00:00
|
|
|
|
|
|
|
|
### LCov diff
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
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.
|