在我的项目中,有一百个包。所以我跑的地方:
$(foreach i,$(TEST_PKGS),go test $(i) -test.short -v)
这将花费将近一个小时。
如果我运行:go test $(TEST_PKGS)
,它将耗费大量内存。
如何处理这个问题?
答案 0 :(得分:0)
您可以使用./...
测试当前目录和所有子目录中的所有包。
来自文档:
为了使普通图案更方便,有两种特殊情况。首先,/ ...在模式的末尾可以匹配一个空字符串,以便net / ...匹配其子目录中的net和packages,如net / http。
其次,任何包含通配符的斜杠分隔模式元素都不会参与销售包路径中“vendor”元素的匹配,因此./ ...与./vendor子目录中的包不匹配或./mycode/vendor,但./vendor / ...和./mycode/vendor / ... do。
但是,请注意,名为vendor的目录本身包含的代码不是销售包:cmd / vendor将是名为vendor的命令,并且模式cmd / ...与它匹配。有关vendoring的更多信息,请参阅golang.org/s/go15vendor。