我的问题很简单,但答案仍然难以捉摸。假设我有一个包
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
的代码覆盖率。
感谢您的时间。
答案 0 :(得分:-1)
经过多次键盘糖化之后,我发现它与我将项目目录轻松链接到$GOPATH/src/
这一事实有关。
将项目复制到$GOPATH/src/mypackage
并正确运行go test -cover
会返回100%的覆盖率。