Go Main測試
阿新 • • 發佈:2019-02-26
簡介
我們知道子測試的一個方便之處在於可以讓多個測試共享Setup和Tear-down。但這種程度的共享有時並不滿足需求,有時希望在整個測試程式做一些全域性的setup和Tear-down,這時就需要Main測試了。
所謂Main測試,即宣告一個func TestMain(m *testing.M)
,它是名字比較特殊的測試,引數型別為testing.M
指標。如果聲明瞭這樣一個函式,當前測試程式將不是直接執行各項測試,而是將測試交給TestMain排程。
示例
下面通過一個例子來展示Main測試用法:
// TestMain 用於主動執行各種測試,可以測試前後做setup和tear-down操作 func TestMain(m *testing.M) { println("TestMain setup.") retCode := m.Run() // 執行測試,包括單元測試、效能測試和示例測試 println("TestMain tear-down.") os.Exit(retCode) }
上述例子中,日誌列印的兩行分別對應Setup和Tear-down程式碼,m.Run()即為執行所有的測試,m.Run()的返回結果通過os.Exit()返回。
如果所有測試均通過測試,m.Run()返回0,否同m.Run()返回1,