我可以跳过golang中的init方法吗?

6ss1mwsb  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(124)

我在一个大型项目中以调试模式运行单元测试。但是,这个项目引用了太多的库,这导致我在执行单个测试时首先执行这些库的init函数。这需要很多时间,所以我希望有一种方法可以跳过init函数。
我没找到什么可以尝试的。

wgmfuz8q

wgmfuz8q1#

不你不能包init()函数必须在您可以使用包中的任何内容之前运行,否则无法保证它们可以正确运行,而不会出现恐慌。
软件包本身必须支持这一点,例如。通过环境变量或任何其他方式;或者它们可以提供必须手动调用的非默认init函数。

juzqafwq

juzqafwq2#

你可以尝试使用Testing函数(Go 1.21+)来检测测试模式,并跳过init()中的一些代码(如果你可以更改此代码):
测试报告当前代码是否正在测试中运行。这将在由“go test”创建的程序中报告true,在由“go build”创建的程序中报告false。

相关问题