英文:
Golang: How to skip test for specific go version
问题
我正在处理这个 PR(https://github.com/gin-contrib/i18n/pull/7),它使用了从 go 1.16 开始支持的 embed 包(https://tip.golang.org/doc/go1.16#library-embed)。
由于 gin-contrib/i18n 包支持从 go 1.13 开始的 go 版本,如果 go 版本 < 1.16,我想让它跳过对 embed 的构建和测试。我应该怎么做?我尝试使用构建标签,像这样:
//go:build go1.16
但是这种方法并不像我预期的那样起作用。提前谢谢。
英文:
I'm working on this PR(https://github.com/gin-contrib/i18n/pull/7) and it uses embed package which was supported from go 1.16(https://tip.golang.org/doc/go1.16#library-embed).
As the gin-contrib/i18n package support go version from go 1.13, I want to make it skip build and test for embed if go version < 1.16. What should I do? I tried using build tag like
//go:build go1.16
but this approach doesn't work as I expected. Thanks in advance.
答案1
得分: 2
根据文档中提到的,//go:build
约束在Go 1.16中已经包含,还可以使用// +build go1.16
。
该包解析原始的“// +build”语法和将在Go 1.17中添加的“//go:build”语法。解析器被包含在Go 1.16中,以允许需要处理Go 1.17源代码的工具仍然可以构建在Go 1.16版本上。有关“//go:build”语法的详细信息,请参阅https://golang.org/design/draft-gobuild。
英文:
as mentioned in the docs. //go:build
constraint is included in Go 1.16, use also // +build go1.16
.
> This package parses both the original “// +build” syntax and the “//go:build” syntax that will be added in Go 1.17. The parser is being included in Go 1.16 to allow tools that need to process Go 1.17 source code to still be built against the Go 1.16 release. See https://golang.org/design/draft-gobuild for details about the “//go:build” syntax.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论