1. 程式人生 > >Go Main測試

Go Main測試

簡介

我們知道子測試的一個方便之處在於可以讓多個測試共享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,