Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ory/go-acc
Accurate Code Coverage reporting for Golang (Go)
https://github.com/ory/go-acc
Last synced: 6 days ago
JSON representation
Accurate Code Coverage reporting for Golang (Go)
- Host: GitHub
- URL: https://github.com/ory/go-acc
- Owner: ory
- License: apache-2.0
- Created: 2017-08-13T07:52:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T12:47:00.000Z (almost 2 years ago)
- Last Synced: 2024-10-29T16:07:15.280Z (about 2 months ago)
- Language: Go
- Homepage: https://www.ory.am/golang-go-code-coverage-accurate.html
- Size: 101 KB
- Stars: 219
- Watchers: 8
- Forks: 31
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# go-acc
A tool for reporting accurate Code Coverage in Golang. It is a cross platform (osx, windows, linux) adaption of the following bash script:
```bash
touch ./coverage.tmp
echo 'mode: atomic' > coverage.txt
go list ./... | grep -v /cmd | grep -v /vendor | xargs -n1 -I{} sh -c 'go test -race -covermode=atomic -coverprofile=coverage.tmp -coverpkg $(go list ./... | grep -v /vendor | tr "\n" ",") {} && tail -n +2 coverage.tmp >> coverage.txt || exit 255' && rm coverage.tmp
```## Installation & Usage
```
$ go install github.com/ory/go-acc@latest
$ go-acc
A tool for reporting accurate Code Coverage in Golang.Usage:
go-acc [flags]Examples:
$ go-acc github.com/some/package
$ go-acc -o my-coverfile.txt github.com/some/package
$ go-acc ./...
$ go-acc $(glide novendor)Flags:
--covermode string Which code coverage mode to use (default "atomic")
--ignore strings Will ignore packages that contains any of these strings
-o, --output string Location for the output file (default "coverage.txt")
-t, --toggle Help message for toggle
--tags Build tags for go build and go test commands```
You can pass regular go flags in bash after `--`, for example:
```
go-acc ./... -- -v -failfast -timeout=20m -tags sqlite
```