好像我的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没有运行
答案 0 :(得分:1)
TestMain
函数在测试包中是本地的。
如果测试文件包含功能:
func TestMain(m *testing.M)
然后生成的测试将调用
TestMain(m)
而不是直接运行测试。
您必须确保两个文件定义相同的程序包或在两个文件中定义TestMain(m)
。