我具有以下项目结构,我想运行go test exclude选项来运行测试
例如运行除cmd
软件包中的测试以外的所有测试的命令(我有3个以上的软件包,下面的结构是一个简单的示例)
myGithubProject/
|---- cmd
|---- -command
|---- -hello.go
|---- -hello_test.go
|---- internal
|---- -fs.go
|---- -fs.go
|---- -fs_test.go
|---- -log
|---- -log.go
|---- -log_test.go
main.go
答案 0 :(得分:1)
如果您具有这样的层次结构,则可以指定兄弟文件夹以进行测试(并向下递归),如下所示:
go test internal/...
如果这对您不可行(例如,您有cmd
的同级兄弟,或者您想测试的cmd
内有许多子文件夹),则可以使用build constraints实现您想要的。
例如,将donttestme
构建标记的排除项添加到hello_test.go
文件(第一行):
// +build !donttestme
然后在测试时指定此标记时,将不考虑排除该构建标记的文件(将被跳过):
go test -tags donttestme <somepackages>