В моем проекте сотни пакетов.Итак, где я бегу:
$(foreach i,$(TEST_PKGS),go test $(i) -test.short -v)
это займет почти час.Если я запущу: go test $(TEST_PKGS), это будет стоить большой памяти.Как справиться с этой проблемой?
go test $(TEST_PKGS)
Вы можете проверить все пакеты в текущем каталоге и всех подкаталогах с помощью ./....
./...
Из документации:
Чтобы сделать общие шаблоны более удобными, существует два особых случая.Во-первых, / ... в конце шаблона может соответствовать пустой строке, так что net / ... соответствует и net, и пакетам в его подкаталогах, например, net / http. Во-вторых, любой разделенный косой чертой элемент шаблона, содержащий подстановочный знак, никогда не участвует в сопоставлении элемента "vendor" в пути пакета, поставляемого в магазине, так что. / ... не соответствует пакетам в подкаталогах./vendor или ./mycode/vendor, но ./vendor / ... и ./mycode/vendor / ... do. Обратите внимание, однако, что каталог с именем vendor, который сам содержит код, не является вендорным пакетом: cmd / vendor будет командой с именем vendor, и шаблон cmd / ... соответствует ей.См. Golang.org/s/go15vendor для получения дополнительной информации о поставщиках.
Чтобы сделать общие шаблоны более удобными, существует два особых случая.Во-первых, / ... в конце шаблона может соответствовать пустой строке, так что net / ... соответствует и net, и пакетам в его подкаталогах, например, net / http.
Во-вторых, любой разделенный косой чертой элемент шаблона, содержащий подстановочный знак, никогда не участвует в сопоставлении элемента "vendor" в пути пакета, поставляемого в магазине, так что. / ... не соответствует пакетам в подкаталогах./vendor или ./mycode/vendor, но ./vendor / ... и ./mycode/vendor / ... do.
Обратите внимание, однако, что каталог с именем vendor, который сам содержит код, не является вендорным пакетом: cmd / vendor будет командой с именем vendor, и шаблон cmd / ... соответствует ей.См. Golang.org/s/go15vendor для получения дополнительной информации о поставщиках.