天天看點

Go測試--main測試

目錄

​​簡介​​

​​示例​​

子測試的一個友善之處在于可以讓多個測試共享setup和tear-down。但這種程度的共享有時并不滿足需求,有時希望在整個測試程式做一些全局的setup和tear-down,這時就需要main測試了。

所謂main測試,即聲明一個​<code>​func testmain(m *testing.m)​</code>​,它是名字比較特殊的測試,參數類型為​<code>​testing.m​</code>​指針。如果聲明了這樣一個函數,目前測試程式将不是直接執行各項測試,而是将測試交給testmain排程。

上述例子中,日志列印的兩行分别對應setup和tear-down代碼,m.run()即為執行所有的測試,m.run()的傳回結果通過os.exit()傳回。

如果所有測試均通過測試,m.run()傳回0,否同m.run()傳回1,代表測試失敗。

有一點需要注意的是,testmain執行時,指令行參數還未解析,如果測試程式需要依賴參數,可以使用flag.parse()解析參數,m.run()方法内部還會再次解析參數,此處解析不會影響原測試過程。

♥永遠年輕,永遠熱淚盈眶♥

繼續閱讀