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
-coverpkgdirective, 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 mypackagecompared to
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statementsIn the example above, I have tests in
main_test.gowhich is inpackage mainthat is usingpackage mypackage. I am mostly interested in the coverage ofpackage mypackagesince 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.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报