我有一些Go测试依赖于一些外部代码,这些代码具有注册mysql驱动程序的init()方法.我的代码也需要注册mysql驱动程序,因此我在运行测试时遇到了恐慌和错误"注册为驱动程序mysql调用了两次".
似乎我依赖的repo有一个vendor目录,里面有驱动程序("vendors/github.com/go-sql-driver/mysql").似乎当我运行我的测试时,驱动程序中的init()方法被调用并注册导致冲突的mysql驱动程序.
我能看到的最佳选择是将依赖项复制到我自己的供应商目录,并从依赖项的供应商目录中删除mysql驱动程序.但是我并不热衷于此,因为它涉及复制我的依赖关系,然后通过删除文件来修改它.另外,我只是依赖它来运行测试,所以我不确定我是否应该以任何方式将它移动到我的供应商目录.
有没有办法阻止在依赖项的供应商依赖项上调用init()?
go ×1