Функция TestMain не запускалась - PullRequest
0 голосов
/ 09 мая 2019

Похоже, моя функция TestMain не запускалась

В моей тестовой папке 2 файла /_test. Один - /main_test.go, другой - /api_city_find_all_test.go.

Я запускаю второй, и появляется паническая ошибка, которая говорит о том, что я получил нулевой указатель, я попытался распечатать что-то в моем /main_test.go в func TestMain, но ничего не печаталось, похоже, что main_test.go не работал / запустить

Кто-нибудь может мне помочь с этим?

main_test.go

func TestMain(m *testing.M) {

  fmt.Print("TEST@@")

  os.Chdir("../../../")

  boot.Bootstrap()

  rajaongkir.Register()

  os.Exit(m.Run())
}

Я бегу
api_city_find_all_test.go

func TestApiCityFindAllTest(t *testing.T) {
  goreq := libraries.Request("http://localhost:8181").Post([]string{"rajaongkir/city/findAll"}, nil, `{}`)

  req, _ := goreq.MakeRequest()
  resp := httptest.NewRecorder()

  fmt.Print("TEST!!")

  utilities.Globals.Router.ServeHTTP(resp, req)

  respBody, _ := ioutil.ReadAll(resp.Body)

  t.Log(string(respBody))

  assert.NotEqual(t, "null", string(respBody))
}

Я ожидаю "ТЕСТ !!" в api_rajaongkir_city_find_all_test.go и «TEST @@» в main_test.go печатаются, но просто «TEST !!» показано, это означает, что main_Test.go не запускался

1 Ответ

1 голос
/ 09 мая 2019

Функция TestMain является локальной для тестового пакета.

Если тестовый файл содержит функцию:

func TestMain(m *testing.M)

тогда сгенерированный тест будет вызывать TestMain(m) вместо непосредственного запуска тестов.

Вы должны убедиться, что оба файла определяют один и тот же пакет или определяют TestMain(m) в обоих файлах.

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