如何使用TestMain与全球aetest.NewInstance

时间:2016-01-29 06:22:57

标签: google-app-engine go

我正在使用     " google.golang.org/appengine/aetest" 打包并设置我的TestMain如下:

var myAeInst aetest.Instance


func TestMain(m *testing.M) {
    var err error
    myAeInst, err = aetest.NewInstance(&aetest.Options{StronglyConsistentDatastore: true})
    defer tearDown()

    c := m.Run()

    os.Exit(code)
}

func tearDown() {
    if myAeInst != nil {
        myAeInst.Close()
    }
}

但它坚持在aetest.NewInstance,任何人遇到类似的问题?

1 个答案:

答案 0 :(得分:1)

您正在呼叫defer tearDown(),然后os.Exit(code),在 tearDown之后调用os.Exit (即永远不会)。您需要在tearDown之前明确调用os.Exit,或者创建一个新的函数,推迟调用os.Exit