0
私は約束を利用するコードをいくつか持っていますが、Mochaを使用しているときは実行できません。私は必需品にそれを単純化していますnode test/index.js
を経由して実行するとノードーでMochaを使用しないと約束します
process.env.NODE_ENV = 'test';
const Promise = require('bluebird');
console.log('zzzz IN');
Promise.resolve('xxx').then(function(val) {
console.log('[normal]', val);
}).catch(function(error) {
console.log('[error]', error);
})
console.log('zzzz OUT');
は私が手:
zzzz IN
zzzz OUT
[normal] xxx
が、モカ経由
:> [email protected] test /Users/ajmas/Development/mocha-and-promise
> eslint lib && mocha --timeout 10000
zzzz IN
zzzz OUT
0 passing (0ms)
はモカや方法でこの問題です私はものを構成しましたか?
Package.json:
{
"name": "my-server",
"version": "0.0.1",
"description": "Mocha and Promises test case",
"main": "lib/main.js",
"scripts": {
"start-dev": "NODE_ENV=dev node test/index.js",
"start-dev-debug": "DEBUG=express:* npm run start-dev",
"start": "node lib/main.js",
"test": "eslint lib && mocha --timeout 10000"
},
"engines": {
"node": ">=6.7.0"
},
"dependencies": {
"bluebird": "^3.4.6"
},
"devDependencies": {
"chai": "^3.5.0",
"chai-http": "^3.0.0",
"eslint": "^3.8.1",
"eslint-config-standard": "^6.2.1",
"eslint-plugin-promise": "^3.3.0",
"eslint-plugin-standard": "^2.0.1",
"mocha": "^3.2.0"
}
}
は、MacOS Xの10.12.2上のノード6.7.0を実行しています。また、 'bluebird'、 'promise'とネイティブPromiseで試してみましたが、それぞれ同じ動作です。
BTWこのコードは、私が統合テストを行うアプリケーションの一部であることを前提としていますが、約束が完了していないため、私はMochaからサーバーを起動できません。
あなたは単に約束を返すことができ、 'done'を必要としません。 https://mochajs.org/#working-with-promisesを参照してください。 –