运行测试,但一个软件包除外

时间:2018-12-01 14:03:43

标签: go testing

我具有以下项目结构,我想运行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

1 个答案:

答案 0 :(得分:1)

如果您具有这样的层次结构,则可以指定兄弟文件夹以进行测试(并向下递归),如下所示:

go test internal/...

如果这对您不可行(例如,您有cmd的同级兄弟,或者您想测试的cmd内有许多子文件夹),则可以使用build constraints实现您想要的。

例如,将donttestme构建标记的排除项添加到hello_test.go文件(第一行):

// +build !donttestme

然后在测试时指定此标记时,将不考虑排除该构建标记的文件(将被跳过):

go test -tags donttestme <somepackages>