第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go/appengine:更快的數(shù)據(jù)存儲測試

go/appengine:更快的數(shù)據(jù)存儲測試

Go
回首憶惘然 2021-11-22 19:29:57
最近我一直在玩 golang 和谷歌的應(yīng)用引擎。在實現(xiàn)存儲庫時,我遇到了非常緩慢的單元測試執(zhí)行。我所做的就是ctx,_ := aetest.NewContext(nil)在每個測試中調(diào)用以獲得一個干凈的數(shù)據(jù)庫。這會在每次測試中啟動一個新服務(wù)器,從而導(dǎo)致測試緩慢。最近我一直試圖通過在 TestMain 中啟動它來解決這個問題。var ctx aetest.Contextfunc TestMain(m *testing.M) {    ctx,_ = aetest.NewContext(nil)    code := m.Run()    ctx.Close()    os.Exit(code)}func TestMyRepository(t *testing.T){    cleanDatastore()    repo := &MyRepository{ctx}    repo.DoSomething()}在函數(shù)cleanDatastore 中,我一直在執(zhí)行一個 bash 腳本,該腳本基本上運行一個 SQLite 命令來清理保存在 /tmp 中的本地數(shù)據(jù)庫。#!/usr/bin/env bashPATH=$1cd $PATHecho "Cleaning datastore..."/usr/bin/sqlite3 datastore "delete from \"dev~testapp!!EntitiesByProperty\";"/usr/bin/sqlite3 datastore "delete from \"dev~testapp!!Entities\";"echo "Datastore is clean."是我想要做的有意義的事情還是有更簡單的方法來實現(xiàn)更好的測試時間。
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

無種類的僅鍵查詢(獲取所有實體的鍵,無論種類如何)應(yīng)該會有所幫助:


   q := datastore.NewQuery("").KeysOnly()

然后,您遍歷所有這些鍵并刪除它們中的每一個,例如:


   for t := q.Run(ctx); ; {

        key, err := t.Next(nil)

        if err == datastore.Done {

            break

        }

        if err != nil {

            serveError(c, w, err)

            return

        }

        datastore.Delete(ctx, key)

    }

將鍵放入數(shù)組并使用可能會稍微快一些DeleteMulti,但是,在本地數(shù)據(jù)存儲上,我懷疑這不會產(chǎn)生可測量的差異。


查看完整回答
反對 回復(fù) 2021-11-22
  • 1 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號