私のテスト環境では、mocha
をテストランナーとして使用しています。私は私が私のORMとしてsequelize
を使用していると私はそれがに設定force
フラグを付けてinitをしたいノード:モカ起動時に非同期関数を実行する
mocha --require setup.js
を使用して起動時にモカを使用して実行するように構成されたsetup.js
ファイル内の「テスト」としてNODE_ENV
を設定しています本当。 sync
の機能はどこで実行する必要がありますか?
import models from '../src/data/models';
models.sync({
force: true
});
これは非同期機能であるため、同期ステージが完了する前にテストが開始される可能性があります。
前もってフックを使用する必要があります。 syncは約束を返すので、(function(){return models.sync({force:true})}))の前に と書くべきです。 – aray12
このフックはどこに書きますか?私はすべてのテストを保持するメインファイルを持っていないので、次のようなテストを実行します: 'mocha \" src/**/*。test.js \ "--require test/setup.js --compilers js: babel-register' – itaied
DBに依存するすべてのテストに対してDBを明示的に再構築する方法について、以下でコメントしました。あなたがまだいくつかの世界的なフックに興味があるなら私は私が投稿した別の答えをチェックすることをお勧めしますhttp://stackoverflow.com/questions/28191243/how-can-i-make-mocha-load-a-helper-js-file- that-defines-global-hooks-or-utilitie/36266849#36266849 - 基本的に、記述ブロックの外側に配置することによってグローバルフックを書くことができます。繰り返しますが、変異を追跡するのは明白ではなく、難しいので、実際にはお勧めしません。 – aray12