В Go есть внутренний механизм для логического разделения тестов в зависимости от некоторых условий, в том числе условий на операционную систему или тип CPU. Так, например, можно отделить юнит тесты от интеграционных или от smoke тестов.
Начиная с версии Go 1.13, стандартный менеджер пакетов в Go - это Go modules. Вместе с ним появилась переменная окружения GOPROXY, которая определяет, откуда будут скачиваться пакеты.
У логов следует использовать разные уровни, так будет легче фильтровать и исследовать проблему по логам.
При таком подходе тест состоит из 3х частей:
Обычный докер образ Golang приложения занимает порядка 600mb.