当我运行此命令时
go test -tags integration $(go list ./... | grep -v /vendor/)
对于所有包含// +build !integration
can't load package: build constraints exclude all Go files
在这种情况下,有没有办法让go test
忽略这些包,而不是失败?感谢
答案 0 :(得分:7)
如果所有包中的文件被构建约束排除,而不仅仅是测试文件,则只会出现该错误。如果这是你想要的,只需添加一个没有代码的包文件,仍然可以加载包。例如,许多软件包将其软件包级文档放在一个单独的文件中,您可以使用该文件始终拥有一个有效的软件包:
// Package foo does foo
package foo
答案 1 :(得分:0)
无论值多少钱:构建代码时,我都遇到类似的错误。在我的情况下,我的主文件在其顶部具有// + build go1.13,并且我试图使用go1.12.x构建该文件。删除+ build go1.13可解决此问题。
答案 2 :(得分:0)
您正在导入的包可能包含一些带有条件复杂性标志的源文件,您可以在文件顶部找到该指令,例如:
//+build linux darwin windows
package main
import "fmt"
func main() {
fmt.Println("hello")
}
+build 指令后跟一个或多个平台指示应该在何处编译此源代码。
因此,您可以简单地尝试删除此指令来解决故障。 它对我有用。