我正在使用 GVM 来管理我的 go 安装和路径,一切似乎都很好 - 我可以运行测试并生成构建。我现在正在尝试生成代码覆盖率文件,但遇到了一些困难。
我的包定义在/home/bill/dev/server/model.
当我运行时:
$ go test -cover -coverprofile cover.out
测试成功运行并生成覆盖文件。但是,coverage 文件中的路径如下所示:
_/home/bill/dev/server/model/activity.go:19.34,21.2 1 1
当我尝试创建 html 封面文件时,出现以下错误:
$ go tool cover -html=cover.out
cover: can't find "activity.go": cannot find package "_/home/bill/dev/server/model/" in any of:
/home/bill/.gvm/gos/go1.2/src/pkg/_/home/bill/dev/server/model (from $GOROOT)
/home/bill/.gvm/pkgsets/go1.2/global/src/_/home/bill/dev/server/model (from $GOPATH)
我该如何解决?
额外细节
~ gvm use go1.2
Now using version go1.2
~ echo $GOPATH
/home/bill/.gvm/pkgsets/go1.2/global
~ echo $GOROOT
/home/bill/.gvm/gos/go1.2
我尝试手动设置我的 $GOPATH 但这并没有改变 cover.out 文件。我也尝试手动编辑 cover.out 文件,但我无法弄清楚它实际想要的路径。在上面显示的默认配置中,运行go test按预期运行。
尝试修复 GOPATH
~ export GOPATH=/home/bill/dev/
~ ln -s /home/bill/dev/server /home/bill/.gvm/gos/go1.2/src
~ go test
cannot find package "code.google.com/p/go.crypto/pbkdf2" in any of:
/home/bill/.gvm/gos/go1.2/src/pkg/code.google.com/p/go.crypto/pbkdf2 (from $GOROOT)
/home/bill/dev/src/code.google.com/p/go.crypto/pbkdf2 (from $GOPATH)
../util/log.go:4:2: cannot find package "github.com/kr/pretty" in any of:
/home/bill/.gvm/gos/go1.2/src/pkg/github.com/kr/pretty (from $GOROOT)
/home/bill/dev/src/github.com/kr/pretty (from $GOPATH)
这些是我之前使用go get. 它们最终位于 $GOPATH 曾经指向的 /home/bill/.gvm/pkgsets/go1.2/global/src 中。所以我改变了 GOPATH
~ export GOPATH=/home/bill/dev/:/home/bill/.gvm/pkgsets/go1.2/global
以便测试再次运行,但 cover.out 文件中仍然包含相同的目录,并且仍然给我相同的错误。
相关分类