我的问题很简单,但是答案仍然难以捉摸。假设我有一个包裹
package mypackage
func DoTheThing() int {
return 5
}
现在假设我在
mypackage_test
包中使用了一个测试package mypackage_test
import "testing"
import . "mypackage"
func TestDoTheThing(t *testing.T) {
if DoTheThing() != 5 {
t.Error("there was a problem")
}
}
现在,我想知道
mypackage
包的代码覆盖率。$ go test -cover
PASS
coverage: 0.0% of statements
ok /my/path/mypackage 0.002s
应该是100%。我也尝试过
$ go test -v -cover -coverpkg ./... ./...
=== RUN TestDoTheThing
--- PASS: TestDoTheThing (0.00s)
PASS
coverage: 0.0% of statements in ./...
ok /my/path/mypackage 0.002s coverage: 0.0% of statements in ./...
对我来说,将测试包含在
mypackage
中是不可能的,因此我需要知道此设置中mypackage
的代码覆盖率。谢谢你的时间。
最佳答案
经过大量键盘混搭后,我发现这与我将项目目录simlink到$GOPATH/src/
有关。
将项目复制到$GOPATH/src/mypackage
并正确运行go test -cover
将返回100%的覆盖率。