Да, это не будет работать с go test
, который рассчитан на работу с одним модулем, корнем которого является текущий каталог или его родительский модуль. Он также не будет работать с вложенными модулями.
Вам понадобится трюк с оболочкой, такой как использование find
или что-то эквивалентное для выполнения в каждом модуле (см., Например, комментарий Cerise Limón). Проекты обычно используют сценарий Makefile
или test.sh
для его запуска.
Один проект большего размера, над которым я работал , имеет список всех своих модулей (https://github.com/google/go-cloud/blob/master/allmodules), а затем несколько сценариев, которые работают в этом списке. Например, тестовый скрипт просто проходит по этому файлу и запускает go test
для каждого каталога, наряду с другими вещами.
Вам не обязательно нужен отдельный файл перечисление модулей (проект go-cloud
использует это для других задач управления), но он просто демонстрирует один способ, которым большие проекты с несколькими модулями обрабатывают вещи.