是否可以跳过测试目录。例如,鉴于下面的结构,是否可以测试mypackage,mypackage / other和mypackage / net,但不能测试mypackage / scripts?我的意思是无需为每个脚本编写go test命令(例如,去测试;去测试网;去测试其他)
mypackage mypackage/net mypackage/other mypackage/scripts
Go test带有要在命令行上测试的软件包列表(请参阅参考资料go help packages),因此您可以通过一次调用来测试任意一组软件包,如下所示:
go help packages
go test import/path/to/mypackage import/path/to/mypackage/other import/path/to/mypackage/net
或者,取决于您的外壳:
go test import/path/to/mypackage{,/other,/net}
您也许可以使用有趣的调用go list作为参数(同样,取决于您的shell):
go list
go test `go list`
您的评论说您想跳过一个子目录,所以(取决于您的shell)也许是这样的:
go test `go list ./... | grep -v directoriesToSkip`
像其他任何事情一样,如果您做了很多,则可以为它设置shell别名。
例如,如果您要跳过测试的原因是您有经常要跳过的长时间/昂贵的测试,则测试本身可能/应该检查testing.Short()并t.Skip()适当调用。
testing.Short()
t.Skip()
然后您可以运行:
go test -short import/path/to/mypackage/...
或从mypackage目录中:
mypackage
go test -short ./...
您还可以使用其他东西testing.Short()来触发跳过。