go test 在同一个包中找不到函数

目录结构为:


src

src/pkg

src/pkg/t1.go

src/pkg/t1_test.go

t1.go

package pkg


import (

"fmt"

)


func SayHI(){

    fmt.Println("this is t1")

}

t1_test.go

package pkg


import (

    "testing"

)


func TestXYZ(t *testing.T) {

    SayHI()

}

从dir的命令行调用go测试 src/pkg


go test t1_test.go


错误:

./t1_test.go:8: undefined: SayHI

FAIL    command-line-arguments [build failed]

但是功能在那里


开心每一天1111
浏览 1041回答 3
3回答

慕码人2483693

这在Golang中有点奇怪。老实说,我花了一些时间才找到出路。一个简单的解决方法是将它们包括在命令中,例如: go test src/pkg/t1.go src/pkg/t1_test.go恕我直言,最好的方法是保持清洁。因此,每个测试文件应避免将多个文件作为依赖项。如果您使用+1文件作为依赖项,请考虑使用一个_test程序包创建黑盒测试,并且不要使用任何lowerCase内部变量。这将避免您在日常测试中不得不处理复杂的依赖项。

吃鸡游戏

跑步go test ./...这将在所有测试文件中找到所有测试。要运行单个测试,请指定依赖项,例如here。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go