Getting coverage of Go unit tests (the ones in _test.go
files) is easy, but there's no documented way to get coverage of tests run externally, against a running "main" binary, like integration tests.
I wrote about a hack I used to solve this on the CloudFlare Blog. It amounts to making a special test case that runs main()
, putting it behind a build flag and compiling with go test -c
.