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

我正在创建一些变量B_test.go,我想在A_test.go. 这可以在 Go 中完成吗?我认为问题归结为我是否只能从B_test.go期间导出函数go test。


例子:


包装内 A_test.go


package A


var from_B = B.ExportedVars()

包装内 B_test.go


package B


ExportedVars() []int {

    return []int{0, 1)

}

跑步go test给予


undefined B.ExportedVars

把ExportedVars()中B.go,而不是B_test.go解决问题,但这不是我想要的。我希望它存在于测试文件中。


繁花如伊
浏览 287回答 1
1回答

紫衣仙女

包无法看到从其他包的测试文件中导出的符号,因为这些go工具不会将这些文件构建到已安装的包中。您可以选择的一种方法是使用构建约束。创建一个或多个包含您出于任何原因要导出的所有内容的文件,而不使用_test.go后缀。然后仅在使用您选择的标签时将它们标记为构建。// +build exportpackage normalvar ExportedName = somethingInternal在 package 中测试依赖于此ExportedName的包时normal,您需要将-tags export标志添加到测试运行中。这对于其他各种原因也很有用,例如进行-tags debug构建,它可以添加额外的功能,例如导入net/http/pprof或expvar
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go