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

如何在没有 _test 的情况下进行测试

如何在没有 _test 的情况下进行测试

Go
慕婉清6462132 2022-06-01 11:16:42
我有一个包和许多测试文件。web |- client.go |- client_test.go |- server.go |- server_test.go |- ...如果我想运行go test client_test.go,它会为我报告错误。package web  // not the package name web_testfunc TestHost(t *testing.T) {      hostPort, hostNoPort := hostPortNoPort()}// error: undefined hostPortNoPort// But this function actually defined in the client.go
查看完整描述

2 回答

?
浮云间

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

这行不通。原因是当您运行 go test 时,go 执行构建以创建测试可执行文件并运行它以获得结果。限制的来源是go build

go help build

如果要构建的参数是来自单个目录的 .go 文件列表,则 build 将它们视为指定单个包的源文件列表。

当您仅将 client_test.go 作为输入时go testgo build将假定这个文件是一个完整的包。因此,它不会解析hostPortNoPort已定义的文件。这会触发构建错误。

你只有两个选择。

  1. 将它放在 web_test 包中并运行go test client_test.go

  2. 使用 go test -run 匹配测试函数名称

除非有一些用于测试函数名称的命名逻辑,否则选项 2 可能会很痛苦。


查看完整回答
反对 回复 2022-06-01
?
慕森王

TA贡献1777条经验 获得超3个赞

尝试这个

go test -v client_test.go

也许它可以帮助你


查看完整回答
反对 回复 2022-06-01
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号