go test沿着执行路径错过了覆盖

时间:2017-07-26 20:57:41

标签: go code-coverage

考虑这样的文件结构:

api --
     |_ routes.go
     |_ handler.go
impl--
     |_ impl.go
     |_ impl_test.go

“impl”文件包含REST API的内部实现,处理程序和路由分别位于“handler.go”和“route.go”文件中。

就包装而言,“api”文件夹下的所有内容都在“api”包中。 “impl.go”中的代码位于“impl”包中,“impl_test”包中的代码位于“impl_test”包中。

api -------
           |_ routes
           |_ handler functions
impl-------
           |_ impl functions
impl_test--
           |_ test functions

测试函数启动一个HTTP服务器,使用“api”包中的路由和处理程序监听本地开放端口,然后调用API。

但是,覆盖率报告显示“api”包中代码​​的覆盖率为0%,“impl”的覆盖率为非零%。

有人可以解释为什么对一个包而不是另一个包测量覆盖率?是否有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果有人使用goconvey登陆此问题,这是该工具的问题:

https://github.com/smartystreets/goconvey/issues/491