私はbefore
フックが非同期になるように見えません。Mocha Before Hook非同期に動作しない
私はbefore
フックを使用して起動しましたが、失敗したときにピックアップしようとしているため、テストするサーバーがないためブロック全体をスキップ/スキップできますと)。
コード内で[async] before
フックを使用しましたが、この場合はdone
が発生するのを待っていません。
基本的に、MochaJSテストがたくさんあり、1ブロックでWebサーバーを起動して、RESTful APIをテストするためのリクエストを作成する必要があります。私はそれが正常に開始したことを確認したいので、非同期メソッド。
describe('RESTful Tests', function(){
// Start up the whole express server for these API tests
before(function(done) {
try {
server.on('error', (e) => {
console.error("HERE");
done();
});
listener = server.listen(port, function() {
console.log("Server Started");
done();
});
console.error("AFTER LISTEN");
} catch(err) {
console.error("ON Caught");
done();
}
console.error("At End!!");
});
これが実行され、テストに1) "before all" hook
として示したが、それが呼び出されるdone
を待ちません。私は他の項目の
RESTful Tests
AFTER LISTEN
At End!!
1) "before all" hook
どれも現れていないが、私はEADDRINUSE
について(Iポートをブロックしたと予想される)例外を取得します...出力を取得しています。私はこれをキャッチする方法を見つけるのに本当に苦労しています。
私はそれが別の(ある種の)「スレッド」にあることを理解していますので、エラーは表示されませんが、まだ... 非同期done
メソッドは従わないのですか?