2017-07-26 132 views
-2

考虑的文件结构像这样错过覆盖“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”显示为非零%。

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

+3

测试覆盖率仅适用于一个封装中。 – JimB

+2

虽然有[gocovmerge](https://github.com/wadey/gocovmerge)来帮助。 – Adrian

+0

“测试覆盖范围仅限于一个包”。如何选择该包?为什么在我的情况下是“impl”而不是“api”? –

回答