Ich habe einen Code, der Versprechungen verwendet, aber es läuft nicht, wenn durch Mocha laufen. Ich habe es auf das Wesentliche vereinfacht:Verspricht nicht mit Mocha, in Nodejs
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');
wenn über node test/index.js
laufen erhalte ich:
zzzz IN
zzzz OUT
[normal] xxx
aber über Mokka:
> [email protected] test /Users/ajmas/Development/mocha-and-promise
> eslint lib && mocha --timeout 10000
zzzz IN
zzzz OUT
0 passing (0ms)
Ist dies ein Problem in Mokka oder in der Art und Weise Ich habe Dinge konfiguriert?
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"
}
}
Laufen mit Knoten 6.7.0 auf MacOS X 10.12.2. Habe auch mit 'bluebird', 'promise' und nativem Promise versucht, aber das gleiche Verhalten bei jedem.
BTW dieser Code soll Teil der Anwendung sein Ich bin Integrationstests, aber weil keine Versprechungen abgeschlossen sind, kann ich den Server nicht aus Mocha starten.
Sie brauchen nicht 'done', können Sie einfach das Versprechen zurück. Siehe https://mochajs.org/#working-with-promises –