gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:28:51 25 4
gpt4 key购买 nike

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

例子:

在包 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 中可以解决问题,但这不是我想要的。我希望它存在于测试文件中。

最佳答案

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

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

// +build export
package normal

var ExportedName = somethingInternal

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

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

关于go - 如何从一个测试包中导出数据并在另一个测试包中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27612721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com