I am trying to use go test -cover
to measure the test coverage of a service I am building. It is a REST API and I am testing it by spinning it up, making test HTTP requests and reviewing the HTTP responses. These tests are not part of the packages of the services and go tool cover
returns 0% test coverage. Is there a way to get the actual test coverage? I would expect a best-case scenario test on a given endpoint to cover at least 30-50% of the code for specific endpoint handler, and by adding more tests for common error to improve this further.

如何衡量Golang集成测试覆盖率?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- doukougua7873 2015-02-06 10:52关注
I was pointed at the
-coverpkg
directive, which does what I need - measures the test coverage in a particular package, even if tests that use this package and not part of it. For example:$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
compared to
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
In the example above, I have tests in
main_test.go
which is inpackage main
that is usingpackage mypackage
. I am mostly interested in the coverage ofpackage mypackage
since it contains 99% of the business logic in the project.I am quite new to Go, so it is quite possible that this is not the best way to measure test coverage via integration tests.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报