go - 去测试覆盖,在不同的包上
问题描述
我一直在写一个休息服务我有以下结构
/controllers
/domain/dao
/services
在为每个单独的包编写了大量测试并为每个阶段使用模拟之后,我认为只针对控制器编写测试并模拟数据库会更快,因此我知道 /domain/dao 层正在被调用。
我现在的问题是,当我运行代码覆盖率时,即使我知道正在调用代码,我也没有得到 /service 或 /domain/dao 的覆盖率
关于如何让我的代码覆盖所有文件的任何想法?
解决方案
你可以试试flag-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
推荐阅读
- java - Java - 通过使用文件中的数据构建不同类型的对象来填充列表
- azure - 用户授权密钥与帐户密钥 - 安全性?
- php - 无法打开文件“app/tests/php/Test.php”
- three.js - 模板缓冲区交叉点可视化
- macos - 弹出dbca(oracle数据库配置助手)窗口时xquartz颜色问题
- react-native - 反应导航自定义标签栏动画不起作用
- mysql - Laravel 在 200 万条记录上给出超时错误
- reactjs - MUI 0.20.x 和 MUI 4.44 未加载基于更高版本的页面无法正确呈现
- pandas - 如何在熊猫中使用阈值进行映射
- amazon-web-services - AWS ECS FARGATE 的日志记录