[REQUEST] Add support for branch comparison when code coverage has changed between branches
- Dominant language
- Ruby
- Stars
- 547
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
**Before we start...:**
- [x] I checked the documentation and didn't find this feature
- [x] I checked to make sure that this feature has not already been requested
**Branch/Commit:**
`main` branch
**Problem:**
When using the `-b` option, the SkunkScore average doesn't change if you improve code coverage for your application/library.
**Solution:**
> **As a developer using `skunk -b stable-branch`**
> **I want to see the right SkunkScore delta**
> **So that I can quickly see how much I've improved my project by paying off tech debt**
It could work like this:
```
skunk -b main
Switched to branch 'main'
running flay smells
...
running flog smells
.......................
running reek smells
.......................
running complexity
.......................
running attributes
.......................
running churn
.......................
running simple_cov
.......................
Switched to branch 'poc/compare-issue'
running flay smells
...
running flog smells
.......................
running reek smells
.......................
running complexity
.......................
running attributes
.......................
running churn
.......................
running simple_cov
.......................
Base branch (main) average skunk score: 32.21
Feature branch (poc/compare-issue) average skunk score: 27.21
**Code coverage average improved by 7.27%**
**Skunk score average is 15% better**
```
**Notes:**
It might be necessary to run the entire test suite "all over again" for one of the branches, so that we can compare two different result sets from SimpleCov.
I imagine it could work like this:
1. Save a copy of the files for the current branch's `coverage` directory in a `.skunk` local directory
2. Run all calculations for the current branch
3. Switch to the "compared branch"
4. Run the entire test suite using `COVERAGE=true`
5. Save a copy of the files for the "compared branch" directory in a `.skunk` local directory
6. Compare all results
7. Output delta information
- [x] I will abide by the [code of conduct](https://github.com/fastruby/skunk/blob/main/CODE_OF_CONDUCT.md)
Contributor guide
Assessment
This issue has not been assessed yet.