功能TestMain没有运行

时间:2019-05-09 07:29:43

标签: go testing

好像我的func TestMain没有运行

我的测试文件夹/_test中有2个文件。一个是/main_test.go,另一个是/api_city_find_all_test.go

我运行第二个,出现恐慌错误,提示我没有nil指针,我尝试在func TestMain的/main_test.go中打印出一些内容,但没有打印任何内容,似乎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中的内容和main_test.go中的“ TEST @@”被打印出来,但仅打印“ TEST !!”。出现,这意味着main_Test.go没有运行

1 个答案:

答案 0 :(得分:1)

TestMain函数在测试包中是本地的。

  

如果测试文件包含功能:

func TestMain(m *testing.M)
     

然后生成的测试将调用TestMain(m)而不是直接运行测试。

您必须确保两个文件定义相同的程序包或在两个文件中定义TestMain(m)