【问题标题】:Golang test coverage with black box _test coverageGolang 测试覆盖与黑盒 _test 覆盖
【发布时间】:2018-05-16 03:36:16
【问题描述】:

我的问题很简单,但答案仍然难以捉摸。假设我有一个包裹

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 在此设置中的代码覆盖率。

感谢您的宝贵时间。

【问题讨论】:

    标签: testing go


    【解决方案1】:

    经过多次键盘混搭后,我发现这与我将我的项目目录模拟链接到 $GOPATH/src/ 的事实有关。

    将项目复制到 $GOPATH/src/mypackage 并正确运行 go test -cover 会返回 100% 的覆盖率。

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多