Bun*_*nyk 5 unit-testing go
我们有以下项目结构:
??? 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
Run Code Online (Sandbox Code Playgroud)
我想通过src / test中的测试来衡量src / app中软件包的覆盖率。当前,通过运行自定义脚本生成覆盖率配置文件,该脚本运行应用程序中每个程序包的覆盖率,然后将所有覆盖率配置文件合并到一个文件中。最近,我听说在go1.10中,我们可以为多个软件包生成覆盖率。
所以我尝试用oneliner替换该脚本,并尝试运行
GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all ./src/test/...
Run Code Online (Sandbox Code Playgroud)
它给了我“可以测试0.475秒的覆盖范围:全部语句的0.0%”
当我做
cd src/test/
GOPATH=${PROJECT_DIR}:${PROJECT_DIR}/vendor go test -covermode count -coverprofile cover.out -coverpkg all
Run Code Online (Sandbox Code Playgroud)
日志显示规范已经运行并且测试成功,但是我仍然有“ coverage:总共0.0%的语句”和空的cover.out。
在测试中正确计算应用程序包覆盖率时,我缺少什么?