为了账号安全,请及时绑定邮箱和手机立即绑定

运行测试并跳过一些包

运行测试并跳过一些包

Go
呼唤远方 2021-09-21 17:23:05
是否可以从测试中跳过目录。例如,给出下面的结构是否可以测试 mypackage、mypackage/other 和 mypackage/net 但不能测试 mypackage/scripts?我的意思是没有为每个编写 go test 命令(例如 go test; go test net; go test other)mypackagemypackage/netmypackage/othermypackage/scripts
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

Go test 使用要在命令行上测试的包列表(请参阅 参考资料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 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()来触发跳过。


查看完整回答
反对 回复 2021-09-21
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信