【问题标题】:Go Test Coverage, over different packages [duplicate]去测试覆盖,在不同的包上[重复]
【发布时间】:2020-09-11 07:00:36
【问题描述】:

我一直在写一个休息服务我有以下结构

/controllers
/domain/dao
/services

在为每个单独的包编写了大量测试并为每个阶段使用模拟之后,我认为只针对控制器编写测试并模拟数据库会更快,因此我知道 /domain/dao 层正在调用。

我现在的问题是,当我运行代码覆盖率时,即使我知道代码正在被调用,我也没有得到 /service 或 /domain/dao 的覆盖率

关于如何让我的代码覆盖所有文件有什么想法吗?

【问题讨论】:

  • 不要将controller、daos和services放到不同的包中。

标签: go testing code-coverage


【解决方案1】:

你可以试试标志-coverpkg

go test --cover -coverpkg=./services  ./... -coverprofile=cover.out

要检查文件夹 /services 中的所有包,您可以尝试:

go test --cover -coverpkg=./services/...  ./... -coverprofile=cover.out

只是一个旁注-我通常添加-covermode=count

go test --cover -covermode=count -coverpkg=./services/...  ./... -coverprofile=cover.out

然后,你可以使用 go 工具将其查看为 html:

go tool cover -html=cover.out

【讨论】:

  • 啊,谢谢这确实有效,我想我需要某种形式的脚本来将所有包覆盖到一个单一的覆盖范围中
猜你喜欢
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
相关资源
最近更新 更多