【问题标题】:Run go tests except from one package运行 go 测试,除了一个包
【发布时间】:2018-12-01 22:32:11
【问题描述】:

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

【问题讨论】:

  • go test internal/... 有什么问题?

标签: go testing


【解决方案1】:

如果你有这样的层次结构,你可以像这样指定兄弟文件夹来测试(并向下递归):

go test internal/...

如果这对您来说不可行(例如,您有很多 cmd 的兄弟姐妹,或者您确实想要测试 cmd 中的许多子文件夹),您可以使用 build constraints 来实现您想要的。

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

// +build !donttestme

然后当你在测试的时候指定这个标签的时候,排除这个build标签的文件就不会被考虑(会被跳过):

go test -tags donttestme <somepackages>

【讨论】:

    猜你喜欢
    • 2014-07-06
    • 2019-05-13
    • 2019-09-21
    • 2012-02-15
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    相关资源
    最近更新 更多