Skip to content

Commit

Permalink
Support coverage.exclude: for excluding files from coverage reports
Browse files Browse the repository at this point in the history
  • Loading branch information
k1LoW committed Feb 8, 2024
1 parent 618e3f0 commit d5e6e7d
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 10 deletions.
4 changes: 2 additions & 2 deletions cmd/badge.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ import (
"strings"
"time"

"github.com/k1LoW/octocov/badge"
"github.com/k1LoW/octocov/config"
"github.com/k1LoW/octocov/internal"
"github.com/k1LoW/octocov/badge"
"github.com/k1LoW/octocov/report"
"github.com/spf13/cobra"
)
Expand Down Expand Up @@ -85,7 +85,7 @@ var badgeCmd = &cobra.Command{
if err := c.CoverageConfigReady(); err != nil {
return err
}
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
return err
}
cp := r.CoveragePercent()
Expand Down
2 changes: 1 addition & 1 deletion cmd/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ var dumpCmd = &cobra.Command{
if err := c.CoverageConfigReady(); err != nil {
cmd.PrintErrf("Skip measuring code coverage: %v\n", err)
} else {
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
cmd.PrintErrf("Skip measuring code coverage: %v\n", err)
}
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/lsFiles.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var lsFilesCmd = &cobra.Command{
if err != nil {
return err
}
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
return err
}
t := 0
Expand Down
6 changes: 3 additions & 3 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ var rootCmd = &cobra.Command{
if err := c.CoverageConfigReady(); err != nil {
cmd.PrintErrf("Skip measuring code coverage: %v\n", err)
} else {
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
cmd.PrintErrf("Skip measuring code coverage: %v\n", err)
}
}
Expand Down Expand Up @@ -358,7 +358,7 @@ var rootCmd = &cobra.Command{
if err != nil {
return err
}
if err := rt.MeasureCoverage([]string{c.Diff.Path}); err == nil {
if err := rt.MeasureCoverage([]string{c.Diff.Path}, c.Coverage.Exclude); err == nil {
if rPrev == nil || rPrev.Timestamp.UnixNano() < rt.Timestamp.UnixNano() {
rPrev = rt
}
Expand Down Expand Up @@ -508,7 +508,7 @@ func printMetrics(cmd *cobra.Command) error {
}

if err := c.CoverageConfigReady(); err == nil {
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
cmd.PrintErrf("Skip measuring code coverage: %v\n", err)
}
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ var viewCmd = &cobra.Command{
if err != nil {
return err
}
if err := r.MeasureCoverage(c.Coverage.Paths); err != nil {
if err := r.MeasureCoverage(c.Coverage.Paths, c.Coverage.Exclude); err != nil {
return err
}
for _, f := range args {
Expand Down
1 change: 1 addition & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ type Config struct {
type Coverage struct {
Path string `yaml:"path,omitempty"`
Paths []string `yaml:"paths,omitempty"`
Exclude []string `yaml:"exclude,omitempty"`
Badge CoverageBadge `yaml:"badge,omitempty"`
Acceptable string `yaml:"acceptable,omitempty"`
If string `yaml:"if,omitempty"`
Expand Down
7 changes: 6 additions & 1 deletion report/report.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ func (r *Report) Load(path string) error {
return nil
}

func (r *Report) MeasureCoverage(paths []string) error {
func (r *Report) MeasureCoverage(paths, exclude []string) error {
if len(paths) == 0 {
return fmt.Errorf("coverage report not found: %s", paths)
}
Expand Down Expand Up @@ -333,6 +333,11 @@ func (r *Report) MeasureCoverage(paths []string) error {
return cerr
}

if err := r.Coverage.Exclude(exclude); err != nil {
cerr = multierror.Append(cerr, err)
return cerr
}

return nil
}

Expand Down
2 changes: 1 addition & 1 deletion report/report_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ func TestMeasureCoverage(t *testing.T) {
}
for _, tt := range tests {
r := &Report{}
if err := r.MeasureCoverage(tt.paths); err != nil {
if err := r.MeasureCoverage(tt.paths, nil); err != nil {
if !tt.wantErr {
t.Error(err)
}
Expand Down

0 comments on commit d5e6e7d

Please sign in to comment.