我正在创建一些变量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
- 1 回答
- 0 关注
- 286 浏览
添加回答
举报
0/150
提交
取消