是否可以从测试中跳过目录。例如,鉴于下面的结构是可以测试mypackage,mypackage / other和mypackage / net但不是mypackage / scripts?我的意思是没有为每个写一个go测试命令( 例如去测试;去测试网;去测试其他)
mypackage
mypackage/net
mypackage/other
mypackage/scripts
答案 0 :(得分:19)
Go test获取要在命令行上测试的包列表(请参阅go help packages
),这样您就可以通过单个调用来测试任意一组包,如下所示:
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
的有趣调用作为参数(同样,取决于您的shell):
go test `go list`
你的评论说你想跳过一个子目录(取决于你的shell)或许这样:
go test `go list ./... | grep -v directoriesToSkip`
与任何事情一样,如果你做了很多,你可以为它制作一个shell别名/无论如何。
如果您想跳过测试的原因是,例如,您经常要跳过长/昂贵的测试,那么测试本身可以/应该检查testing.Short()
并致电t.Skip()
酌情。
然后你可以运行:
go test -short import/path/to/mypackage/...
或来自mypackage
目录:
go test -short ./...
您也可以使用其他testing.Short()
来触发跳过。