fastruby / fastruby/skunk

[REQUEST] Add support for branch comparison when code coverage has changed between branches

Open
#54 0 comments 0 reactions 1 assignee Claimed by @torresga View on GitHub
enhancement Feature Request
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.