gpt4 book ai didi

go - 使用 Go Modules 时外部基准测试的最佳实践

转载 作者:行者123 更新时间:2023-12-03 14:49:03 26 4
gpt4 key购买 nike

我有一个 Go 存储库,其中有一些基准测试(在 _test 后缀包中)。这些基准测试将它与一些第三方库进行了比较。我没有在我的非基准代码中使用这些库。

我现在正在将我的存储库迁移到 go 模块。我不希望我的 go.mod 中有那些第三方库,因为我的库不需要它们来正常使用,而且我不想将我的模块不必要地绑定(bind)到那些。

推荐的 go-mod 方法是什么?我的想法:

  • 在基准上构建标签
  • 另一个仓库的基准
  • 我模块中的模块

最佳答案

如果有人想要运行您的基准测试(例如,检查其规定的结果是否适用于他们的机器配置),那么他们需要知道这些基准测试最初运行时使用的依赖项版本。重现您的测试和基准测试结果所需的信息属于您的 go.mod 文件。

但请注意,“拥有最低版本”与“导入”不同。

如果用户构建了您的包但没有构建和运行其测试,或者如果他们在您的模块中构建了一些其他包,那么他们将不需要下载源代码 用于基准依赖项即使该依赖项包含在您的 go.mod 文件中。

(并且 https://golang.org/issue/36460 中的提案对该属性加倍下调:如果实现,该提案将避免加载从未导入的包的依赖项,可能会删除依赖关系图中的大块。)

因此,如果您真的不希望用户必须构建基准的依赖项,请将基准与您希望用户导入的包放在一个单独的包中。

关于go - 使用 Go Modules 时外部基准测试的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418936/

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