运行测试并跳过一些包

时间:2015-03-15 17:59:52

标签: go

是否可以从测试中跳过目录。例如,鉴于下面的结构是可以测试mypackage,mypackage / other和mypackage / net但不是mypackage / scripts?我的意思是没有为每个写一个go测试命令( 例如去测试;去测试网;去测试其他)

mypackage
mypackage/net
mypackage/other
mypackage/scripts

1 个答案:

答案 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()来触发跳过。