【问题标题】:Test main package using "package main_test"使用“package main_test”测试主包
【发布时间】:2020-07-30 02:56:50
【问题描述】:

我有一个main.gomain_test.gogo test 工作正常:

$ cat main.go
package main

func main() {}

func F() int { return 1 }

$ cat main_test.go
package main

import "testing"

func TestF(t *testing.T) {
    if F() != 1 {
        t.Fatalf("error")
    }
}

link1link2,我可以在main_test.go 中使用package main_test。但是go test 显示./main_test.go:6:5: undefined: F。如何修复错误?

【问题讨论】:

    标签: go


    【解决方案1】:

    导入主包。假设包路径为“example.com/example”,使用以下代码。

    $ cat main_test.go
    package main
    
    import (
         "testing"
         "example.com/example"   // import main
    )
    
    func TestF(t *testing.T) {
        if main.F() != 1 {      // use package selector when referring to F
            t.Fatalf("error")
        }
    }
    

    example.com/example替换为你的包的实际路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 2023-03-23
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多