Глобальная настройка Golang для всех тестов (в том же и других подмодулях). - PullRequest
0 голосов
/ 25 июня 2018

Обычно я пытаюсь запустить команду go test ./... для конвейера CI / CD, которая использовалась для запуска всех тестовых случаев среди всех подкаталогов.

Но я недавно провела рефакторинг своего кода, чтобы получить путь к файлу конфигурации из анализа флага, а затем прочитать и инициализировать все переменные (требуется перед запуском сервера). Это изменение необходимо для удаления всего кода инициализации из init function -> custom function который будет вызываться из основного.

Теперь все, что связано, сделано, но все контрольные примеры не работают, так как мне нужно вызвать все пользовательские функции откуда-то.

Я пытался использовать функцию TestMain, но я думаю, что она работает только для одного и того же модуля, и все тестовые примеры терпят неудачу.

func TestMain(m *testing.M) { 
    mySetupFunction()
    retCode := m.Run()
    myTeardownFunction()
    os.Exit(retCode)
}

Нужна помощь, чтобы узнать, как создать глобальную тестовую настройку или узнать, есть ли какой-либо другой лучший способ для вышеупомянутого рефакторинга.

Моя структура модулей выглядит следующим образом

A
    B
    C
    D
        E
            F
        G
            H
    I
main.go 

где родительский модуль - это A, который содержит main.go и различные другие модули, некоторые из которых вложены в глубокий уровень, и все они имеют свои собственные тестовые случаи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...