рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реВрдЯ рдХреЛ рдЪрд▓рд╛рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:
timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
рдореБрдЭреЗ StackOverflow рдкрд░ рдпрд╣ рд╕реБрдкрд░ рдЙрдкрдпреЛрдЧреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА http://stackoverflow.com/questions/16607039/in-mocha-testing- while-calling-asynchronous-function-how-to-avoid-the-timeout-er# рдФрд░ рдпрд╣рд╛рдВ https: //github.com/mochajs/mocha/pull/278
рд╣рд╛рд▓рд╛рдБрдХрд┐, HTTP рдФрд░ рд╡рд╛рджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╡рд╛рд▓реЗ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рд░ рдШрдЯрдирд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдХреЗрд╡рд▓ рдХреЛрдгреАрдп рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдЪрд╢реНрдорд╛ рд╣реИрдВ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреЗрдЯрд╛, рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж!
@gumatias рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ @boneskull рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЗрд╕ рд╕рдордп рд▓рдЧрднрдЧ 700+ рд╕реНрдкреЗрдХреНрд╕ рд╣реИрдВ рдФрд░ рд╡реЗ рд╕рднреА рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдХреЛрдб рд╣реИрдВред рдореИрдВ рджреЛ рд╕рдорд╛рди рдирдореВрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдорджрдж рдорд┐рд▓реЗрдЧреА?
рдиреАрдЪреЗ рд╡рд╣ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ package.json рдореЗрдВ рд╣реИред рдореЛрдЪрд╛ рдФрд░ рдХрд░реНрдо-рдореЛрдЪрд╛ рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред
"devDependencies": {
"karma": "~0.12.30",
"karma-chai-jquery": "~1.0.0",
"karma-chrome-launcher": "~0.1",
"karma-coffee-preprocessor": "~0.1.3",
"karma-firefox-launcher": "~0.1",
"karma-jquery": "~0.1.0",
"karma-mocha": "0.2.0",
"karma-sinon-chai": "~0.1.1",
"karma-spec-reporter": "~0.0.10",
"mocha": "^2.2.5"
}
рдиреАрдЪреЗ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдореЗрд░реЗ рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдмрд┐рдирд╛ рд╕рдлрд▓рддрд╛ рдХреЗ)ред
1. рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рджреЗ рдФрд░ async рдХреЙрд▓ рдХреЗ рднреАрддрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ done()
рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛
2. рдПрд╕рд┐рдВрдХ рдХреЙрд▓реНрд╕, рд╡рд╛рджреЛрдВ, рдПрдЪрдЯреАрдЯреАрдкреА рдмреИрдХрдПрдВрдб рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ (рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ)
3. рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ package.json
рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛:
"devDependencies": {
"karma": "~0.12.30",
"karma-chai-jquery": "1.0.0",
"karma-chrome-launcher": "0.2.2",
"karma-coffee-preprocessor": "0.3.0",
"karma-firefox-launcher": "~0.1",
"karma-jquery": "0.1.0",
"karma-mocha": "0.2.1",
"karma-sinon-chai": "1.1.0",
"karma-spec-reporter": "0.0.23",
"mocha": "2.3.4"
}
4. рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд╢реНрдорд╛ рдХрд┐ рдХрд░реНрдо рд╕реНрдкреЗрдХ рд░рд┐рдкреЛрд░реНрдЯрд░ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣рд╛ рдерд╛:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Chrome 39.0.2171 (Mac OS X 10.11.2) SLOW 2.457 secs: My Spec Name "before each" hook for "should display " Add My Spec" when doing something"
рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдиреНрдп рдирдП рд╕реНрдкреЗрдХреНрд╕ рдзреАрдореЗ рд╣реЛрдиреЗ рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣реЗ рдереЗред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рдЦреЛрдЬреЗ рдмрд┐рдирд╛ рдЪрд╢реНрдореЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрд╣ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдореБрджреНрджрд╛ рдирд┐рдХрд▓рд╛ https://github.com/mochajs/mocha/issues/2030
рдЯреЗрд╕реНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕.рдЯрд╛рдЗрдордЖрдЙрдЯ (0) рдХрд╛ рдЙрдкрдпреЛрдЧ:
it('should take less than 500ms', function(done){
this.timeout(500);
setTimeout(done, 300);
});
рд╕реНрд░реЛрдд: https://mochajs.org/#timeouts
рдпрджрд┐ рдЖрдк рдПрдореНрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдореНрдмрд░ рдореЗрдВ рдПрд╕рд┐рдВрдХ рдХреЙрд▓ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред => рдЗрд╕реЗ рдкрдврд╝реЗрдВ
рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдФрд░ Ember.run => рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред
рд╕рд╛рде рд╣реА, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рддреАрд░ рдХреЛ рдПрдХ рдореЛрдЯрд╛ рддреАрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, (рдореИрдВрдиреЗ => рдХреЗ рдмрдЬрд╛рдп => рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЧрд▓рддреА рдХреА рд╣реИ) рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреЛрдк рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкрдврд╝реЗрдВред
рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
рддреНрд░реБрдЯрд┐: 2000ms рдХрд╛ рд╕рдордпрдмрд╛рд╣реНрдп рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ред рдПрд╕рд┐рдВрдХреНрд╕ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╣реБрдХ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ "рдХрд┐рдпрд╛ ()" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рдпрджрд┐ рдХреЛрдИ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ?
рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:
describe("Test Search", function() {
it("Test Post Request", function(done) {
chai.request(postReqURL)
.post(postReqURL)
.send(postReqObject)
.end(function (err, res) {
if (err) done(err);
expect(res.status).to.equal(200);
done()
})
});
});
рдирдорд╕реНрддреЗ @ vishnu2prasadh , рдХреНрдпрд╛ рдЖрдкрдиреЗ HTTP API рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ done
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
@ScottFreeCode рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕.рдЯрд╛рдЗрдордЖрдЙрдЯ(10000) рдХреЛ рдЬреЛрдбрд╝рдХрд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛; рдХреЗ рднреАрддрд░
it("Test Post Request", function(done) {
this.timeout(10000);
});
рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддрд╣рдд рдЬрд╕рди
"scripts": {
"start": "SET NODE_ENV=dev && node ./bin/www",
"devstart": "SET NODE_ENV=dev && nodemon ./bin/www",
"test": "mocha --timeout 10000" <= increase this from 1000 to 10000
},
рддрдм рдЖрдк рдмрд╕ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
npm test
@elvinaze рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реАрдорд╛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддрд╣рдд рдЬрд╕рди
"scripts": { "start": "SET NODE_ENV=dev && node ./bin/www", "devstart": "SET NODE_ENV=dev && nodemon ./bin/www", "test": "mocha --timeout 10000" <= increase this from 1000 to 10000 },
рддрдм рдЖрдк рдмрд╕ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
npm test
рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЙрддреНрддрд░ ЁЯСН
рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддрд╣рдд рдЬрд╕рди
"scripts": { "start": "SET NODE_ENV=dev && node ./bin/www", "devstart": "SET NODE_ENV=dev && nodemon ./bin/www", "test": "mocha --timeout 10000" <= increase this from 1000 to 10000 },
рддрдм рдЖрдк рдмрд╕ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
npm test
рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпреЛрдВред рддреНрд░реБрдЯрд┐: 10000ms рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред рдПрд╕рд┐рдВрдХреНрд╕ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╣реБрдХ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ "рдХрд┐рдпрд╛ ()" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рдпрджрд┐ рдХреЛрдИ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ
рдпрд╣ ('рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП', рдлрд╝рдВрдХреНрд╢рди (рдХрд┐рдпрд╛ рдЧрдпрд╛) {
Any_asynchfunction ()ред рддрдм (рдлрд╝рдВрдХреНрд╢рди (рдЪреЗрдХ) {
рдкреНрд░рдпрддреНрди{
рдЬреЛрд░ рджреЗрдВред рд╕рдЦреНрдд рдПрдХреНрд╡рд╛рд▓ (рдЪреЗрдХ, рд╕рдЪ, 'рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ');
рдХрд┐рдпрд╛ рд╣реБрдЖ();
}рдкрдХрдбрд╝реЛ (рдЧрд▓рддреА){
рдХрд┐рдпрд╛ (рдЧрд▓рддреА);
}
});
});
рд╡рд░ any_asynchfunction = рд╕рдорд╛рд░реЛрд╣ (){
рд╡рд░ рдЖрд╕реНрдердЧрд┐рдд = q. defer ();
// Async рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреИрд╕реЗ: API рдХреЙрд▓ (http://api.domain.com)
рдЖрд╕реНрдердЧрд┐рдд.рд╕рдорд╛рдзрд╛рди (рд░реЗрд╕);
рд╡рд╛рдкрд╕реА рдЖрд╕реНрдердЧрд┐рддредрд╡рд╛рджрд╛;
}
рдХреЙрд▓рдмреИрдХ рдФрд░ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЛрдЪрд╛ рдХреЗ рд╕рд╛рде рдПрд╕рд┐рдВрдХреНрд╕ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛
@ashish101184 , рдЕрд╕рдВрдмрдВрдзрд┐рдд рдмрдВрдж рдореБрджреНрджреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рди рдЬреЛрдбрд╝реЗрдВ!
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рдереАред
it('should access user module', function() {
return any_asynchfunction()
.then(function(check) {
assert.strictEqual(check, true, 'admin user should have access to user module');
});
});
рдЯреЗрд╕реНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕.рдЯрд╛рдЗрдордЖрдЙрдЯ (0) рдХрд╛ рдЙрдкрдпреЛрдЧ:
it('should take less than 500ms', function(done){ this.timeout(500); setTimeout(done, 300); });
рд╕реНрд░реЛрдд: https://mochajs.org/#timeouts
рд╣реИрд▓реЛ рдиреЗ рдЖрдкрдХреЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреЛрдЯрд┐рдпрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд▓рд╛рдЗрди 3 рдлреЗрд╕рд┐рдВрдЧ рдПрд░рд░ '60000ms рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛' рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдореЗрд░реА package.json
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡реИрд╢реНрд╡рд┐рдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рддрд╣рдд рдореИрдВрдиреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ mocha.opts
ред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрд╡рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
--timeout 10000
рдореБрдЭреЗ рд╡рд╣ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓ рд░рд╣реА рдереА, рдФрд░ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рд╢реЛрдз рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдореВрд▓ рдХрд╛рд░рдг рдорд┐рд▓рд╛ред
рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const delay = require('delay')
describe('Test', function() {
it('should resolve', async function(done) {
await delay(1000)
})
})
рдЬрдм рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
рдЕрдм рдЗрд╕ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд░реНрдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :
const delay = require('delay')
describe('Test', function() {
it('should resolve', async function() {
await delay(1000)
})
})
рдЬрдм рдореИрдВ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд┐рд╕реА рддрд░рд╣ async рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдП рдЧрдП рддрд░реНрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝ рджреЗрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдФрд░ рднрд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ () рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддрд╣рдд рдЬрд╕рди
"scripts": { "start": "SET NODE_ENV=dev && node ./bin/www", "devstart": "SET NODE_ENV=dev && nodemon ./bin/www", "test": "mocha --timeout 10000" <= increase this from 1000 to 10000 },
рддрдм рдЖрдк рдмрд╕ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
npm test
"рдЯреЗрд╕реНрдЯ" "рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕" рдореЗрдВ --timeout 10000 рдЬреЛрдбрд╝рдирд╛, рдореЗрд░реЗ рд▓рд┐рдП рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╢реБрдХреНрд░рд┐рдпрд╛!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддрд╣рдд рдЬрд╕рди
рддрдм рдЖрдк рдмрд╕ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ