目錄
簡介
示例
子測試的一個友善之處在于可以讓多個測試共享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()方法内部還會再次解析參數,此處解析不會影響原測試過程。
♥永遠年輕,永遠熱淚盈眶♥