猿问

导出结构仅用于在 Golang 中进行测试

我有一个许多其他包使用的实用程序包。我还创建了一些实现这些接口的测试结构。我把它们放进去interfaces_test.go


我希望能够在我的*_test.go文件中的其他包中导入这些测试结构。


我在http://golang.org/src/pkg/os/export_test.go 中看到了类似的东西,但无论我尝试什么,我都会收到与此类似的错误:


go test something/mypackage

mypackage/ant_lat_lon_test.go:46: undefined: rutl.TestAntenner

FAIL    something/mypackage [build failed]

有没有办法做到这一点?


慕姐8265434
浏览 169回答 1
1回答

千万里不及你

*_test.go只有在测试它们所属的包时才会编译匹配的文件。如果您正在测试使用包 B 的包 A,您将无法访问_test.go包 B 中的代码。所以两个选项是:始终将测试支持代码编译到包 B 中。如果测试支持代码只依赖于B的导出接口,可以考虑拆分成一个单独的包。
随时随地看视频慕课网APP

相关分类

Go
我要回答