选择性测试:在 Go 中跳过包
运行测试套件时,您可能会遇到想要从其中排除某些包或目录的情况测试。在 Go 中,可以直接从命令行指定要测试的包。
例如,假设您有一个如下所示的项目结构:
mypackage mypackage/net mypackage/other mypackage/scripts
仅测试 mypackage 、 mypackage/other 和 mypackage/net 包,同时排除 mypackage/scripts,您可以使用以下内容命令:
go test import/path/to/mypackage import/path/to/mypackage/other import/path/to/mypackage/net
或者,如果您首选的 shell 语法允许,您可以使用以下简写:
go test import/path/to/mypackage{,/other,/net}
另一种方法涉及利用 go list,它返回包列表匹配给定的模式。您可以将此输出传输到 grep 等命令,并过滤掉您不想测试的包,如下所示:
go test `go list ./... | grep -v directoriesToSkip`
如果跳过测试的原因是为了优化运行时,则测试函数本身可以检查testing.Short()并决定是否使用t.Skip()跳过。这允许在调用 go test -short 时进行选择性测试。
以上是如何有选择地运行 Go 测试并排除特定的包或目录?的详细内容。更多信息请关注PHP中文网其他相关文章!