为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
开心每一天1111 2021-05-20 18:54:49
目录结构为:srcsrc/pkgsrc/pkg/t1.gosrc/pkg/t1_test.got1.gopackage pkgimport ("fmt")func SayHI(){    fmt.Println("this is t1")}t1_test.gopackage pkgimport (    "testing")func TestXYZ(t *testing.T) {    SayHI()}从dir的命令行调用go测试 src/pkggo test t1_test.go错误:./t1_test.go:8: undefined: SayHIFAIL    command-line-arguments [build failed]但是功能在那里
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

这在Golang中有点奇怪。老实说,我花了一些时间才找到出路。

一个简单的解决方法是将它们包括在命令中,例如: go test src/pkg/t1.go src/pkg/t1_test.go

恕我直言,最好的方法是保持清洁。因此,每个测试文件应避免将多个文件作为依赖项。如果您使用+1文件作为依赖项,请考虑使用一个_test程序包创建黑盒测试,并且不要使用任何lowerCase内部变量。

这将避免您在日常测试中不得不处理复杂的依赖项。


查看完整回答
反对 回复 2021-05-31
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

跑步

go test ./...

这将在所有测试文件中找到所有测试。要运行单个测试,请指定依赖项,例如here


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 1034 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信