build: add a make cover target for per-function coverage (closes #17)
make cover writes build/coverage.out and prints the per-function report; make cover-html renders the same profile to build/coverage.html. The per-package percentage make test prints cannot say which function is untested. Both write files, so neither is in check, and neither may be added to it: check must not modify the working tree. Their output lands under the already-ignored build/. Verified: make cover printed per-function lines and a 62.6% total, make cover-html wrote build/coverage.html, and git status stayed clean. GOFLAGS=-count=1 make check green in 24s with the lint layer executing (12.0s, "0 issues.", not CACHED) and the suite running for real (cmd/rogue 1.037s, game 3.410s); check is still fmt-check lint test and git status is clean afterwards.
This commit is contained in:
@@ -80,8 +80,10 @@ For development, the `Makefile` wraps the toolchain: `make fmt` (gofmt +
|
||||
prettier), `make lint` (`script/lint`, which runs golangci-lint inside the
|
||||
pinned container built from `Dockerfile.lint` — it is never installed on the
|
||||
host, so docker is required), `make test` (the suite, under the race detector
|
||||
with coverage and a timeout), `make check` (all three), and `make build` (the
|
||||
executable, into the git-ignored `build/`). Use the targets rather than the
|
||||
with coverage and a timeout), `make check` (all three), `make build` (the
|
||||
executable), and `make cover` / `make cover-html` (per-function coverage, and
|
||||
the same profile as annotated source at `build/coverage.html`). Everything they
|
||||
generate lands in the git-ignored `build/`. Use the targets rather than the
|
||||
toolchain directly — they carry the flags the project relies on.
|
||||
|
||||
## License
|
||||
|
||||
Reference in New Issue
Block a user