我们有以下的项目结构:
├── 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包中的软件包覆盖率。目前,我是通过运行自定义脚本来为app中的每个软件包运行覆盖分析,并将所有覆盖分析文件合并成一个文件来生成覆盖分析文件。最近我听说在go1.10中,我们可以生成多个包的覆盖分析。
因此,我尝试用一行命令替换那个脚本,并尝试运行:
GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all ./src/test/...
当我执行以下命令:
"ok test 0.475s, 覆盖率为0.0%,涵盖了所有语句"
以上内容涉及IT技术领域,希望我的翻译可以对您有所帮助。
cd src/test/
GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all
日志显示规范已经运行并且测试成功,但是我仍然有“覆盖率:所有语句的0.0%”和空的cover.out文件。
我错过了什么以正确计算应用程序包在测试中的覆盖率?
tests
和src
放在不同的包中并不被认为是一种好的做法。 - Shettyh