gpt4 book ai didi

unit-testing - 如何在自定义文件夹中使用 go test 生成多个包的覆盖率?

转载 作者:IT王子 更新时间:2023-10-29 01:28:20 25 4
gpt4 key购买 nike

我们有以下项目结构:

├── Makefile
├── ...
├── src
│   ├── app
│   │   ├── main.go
│ │ ├── models
│ │ ├── ...
│ │ └── dao.go
│   │   ├── ...
│   │   └── controllers
│ │ ├── ...
│ │ └── pingController.go
│   └── test
│   ├── all_test.go
│   ├── ...
│   └── controllers_test.go
└── vendor
└── src
├── github.com
├── golang.org
└── gopkg.in

我想通过 src/test 中的测试来测量 src/app 中包的覆盖率。目前通过运行自定义脚本生成覆盖率配置文件,该脚本为应用程序中的每个包运行覆盖率,然后将所有覆盖率配置文件合并到一个文件中。最近听说在 go1.10 中我们可以为多个包生成覆盖。

所以我尝试用 oneliner 替换那个脚本,然后尝试运行

GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all ./src/test/...

它给了我“好的测试 0.475s 覆盖率:所有语句的 0.0%”

当我做的时候

cd src/test/
GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all

日志显示规范已运行并且测试成功,但我仍然有“覆盖率:所有语句的 0.0%”和空 cover.out。

要通过测试中的测试正确计算应用程序中包的覆盖率,我缺少什么?

最佳答案

您不能使用 go test 的当前状态,但您始终可以使用第三方脚本。

https://github.com/grosser/go-testcov

关于unit-testing - 如何在自定义文件夹中使用 go test 生成多个包的覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com