gocovsh
is a tool for exploring Go Coverage
reports from the command line.
Don't skip the Giving back section! ๐ฐ
Demo below ๐ฌ ๐
There is a Russian word ะะพะฒั (pronounced like "Kovsh") which means a ladle or a dipper. "The Big Dipper" is also a part of the constellation Ursa Major, thus the friendly dipper-shaped Gopher mascot, created by Michael Zolotov.
Using Homebrew
brew install orlangure/tap/gocovsh
Grab your pre-built binary from the Releases page.
# install latest, probably unreleased version
go install github.com/orlangure/gocovsh@latest
# or install a specific version
go install github.com/orlangure/[email protected]
-
Generate Go coverage report at your project's root with
go test -cover -coverprofile coverage.out
For more information about generating Go coverage reports, see ๐ my blog post.
-
Run
gocovsh
at the same folder withcoverage.out
report andgo.mod
file (go.mod
is required).gocovsh # show all files from coverage report git diff --name-only | gocovsh # only show changed files git diff | gocovsh # show coverage on top of current diff gocovsh --profile profile.out # for other coverage profile names
-
Use
j/k/enter/esc
keys to explore the report. See built-in help for more key-bindings.
gocovsh
supports 4 nice themes (using Catppuccin
Theme project) and an ugly default
one at this moment. To change the theme, set GOCOVSH_THEME
environment
variable to one of the following values: mocha
, latte
, frappe
or
macchiato
:
GOCOVSH_THEME=mocha gocovsh
GOCOVSH_THEME=latte gocovsh
GOCOVSH_THEME=frappe gocovsh
GOCOVSH_THEME=macchiato gocovsh
To always use the same theme, add export GOCOVSH_THEME=<theme name>
to your
~/.bashrc
, ~/.zshrc
or any other file that you use for shell configuration.
This is a free and open source project that hopefully helps its users, at least a little. Even though I don't need donations to support it, I understand that there are people that wish to give back anyway. If you are one of them, I encourage you to plant some trees with Tree Nation ๐ฒ ๐ณ ๐ด
If you want me to know about your contribution, make sure to use
[email protected]
as the recipient email.
Thank you!