我的测试与我的代码不在同一个包中.我发现用一些测试文件来组织一个代码库是一种不那么混乱的方式,我已经读过,为了限制测试通过软件包的公共api进行交互,这是一个好主意.
所以它看起来像这样:
api_client:
Client.go
ArtistService.go
...
api_client_tests
ArtistService.Events_test.go
ArtistService.Info_test.go
UtilityFunction.go
...
Run Code Online (Sandbox Code Playgroud)
我可以输入go test bandsintown-api/api_client_tests -cover
并查看0.181s coverage: 100.0% of statements.但是,这其实只是覆盖在我的UtilityFunction.go(正如我所说的,当我跑go test bandsintown-api/api_client_tests -cover=cover.out和
go tool cover -html=cover.out).
有没有办法获得api_client正在测试的实际包的覆盖范围,而不是将它们全部放入同一个包中?
我一直在写一个休息服务我有以下结构
/controllers
/domain/dao
/services
Run Code Online (Sandbox Code Playgroud)
在为每个单独的包编写大量测试并为每个阶段进行模拟之后,我认为针对控制器编写测试并模拟数据库会更快,因此我知道 /domain/dao 层正在被调用。
我现在的问题是,当我运行代码覆盖率时,即使我知道代码正在被调用,我也没有获得 /service 或 /domain/dao 的覆盖率
关于如何获得所有文件的代码覆盖率有什么想法吗?