在我的測試環境中,我使用mocha
作爲測試運行器。我曾經在一個setup.js
文件,我配置與摩卡運行在啓動時使用節點:在摩卡啓動時執行異步功能
mocha --require setup.js
我使用sequelize
我的ORM,我希望它與force
標誌設置爲初始化配置NODE_ENV
爲「測試」真正。我應該在哪裏執行sync
功能?
import models from '../src/data/models';
models.sync({
force: true
});
由於它是一個異步函數,測試可能在同步階段完成之前開始。
您需要使用before鉤子。由於同步返回一個承諾,你應該在之前編寫 (function(){return models.sync({force:true})}) – aray12
我應該在哪裏寫這個鉤子?我沒有一個包含所有測試的主文件,我執行如下測試:'mocha \「src/**/*。test.js \」--require test/setup.js --compilers js: babel-register' – itaied
我在下面評論了你應該如何明確地重建你的數據庫,以便依賴於數據庫的每個測試。如果你仍然對一些全局鉤子感興趣,我建議你檢查一下我發佈的另一個答案http://stackoverflow.com/questions/28191243/how-can-i-make-mocha-load-a-helper-js-file- that-defines-global-hooks-or-utilitie/36266849#36266849 - 基本上你可以通過將它放在任何describe塊之外來編寫全局鉤子。我再次不推薦它,因爲它不是明確的,很難追蹤突變,但取決於你... – aray12