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

如何从测试包中导出数据并在go中的另一个测试包中使用它们

如何从测试包中导出数据并在go中的另一个测试包中使用它们

Go
繁花如伊 2021-09-10 15:05:51
我正在创建一些变量B_test.go,我想在A_test.go. 这可以在 Go 中完成吗?我认为问题归结为我是否只能从B_test.go期间导出函数go test。例子:包装内 A_test.gopackage Avar from_B = B.ExportedVars()包装内 B_test.gopackage BExportedVars() []int {    return []int{0, 1)}跑步go test给予undefined B.ExportedVars把ExportedVars()中B.go,而不是B_test.go解决问题,但这不是我想要的。我希望它存在于测试文件中。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

包无法看到从其他包的测试文件中导出的符号,因为这些go工具不会将这些文件构建到已安装的包中。您可以选择的一种方法是使用构建约束。


创建一个或多个包含您出于任何原因要导出的所有内容的文件,而不使用_test.go后缀。然后仅在使用您选择的标签时将它们标记为构建。


// +build export

package normal


var ExportedName = somethingInternal

在 package 中测试依赖于此ExportedName的包时normal,您需要将-tags export标志添加到测试运行中。


这对于其他各种原因也很有用,例如进行-tags debug构建,它可以添加额外的功能,例如导入net/http/pprof或expvar


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

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