なっく日報

技術やら生活やらのメモ

Mochaで--delayフラグを使って初期化完了までテストを実行しないようにする

--delayフラグ?

http://mochajs.org/#delayed-root-suite

で知りました。

setTimeout(function() {
  // do some setup

  describe('my suite', function() {
    // ...
  });

  run();
}, 5000);

のように書いて、mocha --delay test と実行すると、run()が呼ばれるまでテストの部分までは行かないと。

ちなみにrun()はmochaが勝手にグローバルスコープに追加してくれる関数だそう。

使用例

DBに接続するまでテストを実行しないようにすることができたりとか?

例えば、

↓のようなbootstrap.js というファイルを作り

DB.connect((err, db) => {
  run();
});

mocha --delay -require bootstrap.js test と実行するとか。

これで、connect()の処理が終わるまでテストが動かないようにできるはず。

本当のところ

きちんとコードを書いていれば恐らくこの書き方は必要ないんじゃと思いますw

でも、某古めなプロジェクトで困ったコードがあり、これは使えるんじゃ?と思ったので記事にしました。

本日はこんなところで。