Когда я запускаю тесты мокко
Running app as a module
Express.js server is listening on port 3000
server
homepage
1) "before all" hook in "server"
2) should respond to GET
0 passing (17ms)
2 failing
1) server
"before all" hook in "server":
Uncaught Error: listen EADDRINUSE: address already in use :::3000 (and Mocha's done() called multiple times)
at Server.setupListenHandle [as _listen2] (net.js:1313:16)
at listenInCluster (net.js:1361:12)
at Server.listen (net.js:1447:7)
at boot (tests/index.js:8:10)
at Context.<anonymous> (tests/index.js:24:5)
at processImmediate (internal/timers.js:456:21)
2) server
homepage
should respond to GET:
Uncaught TypeError: Cannot read property 'status' of undefined
at /home/miki/azatmardan/ch3/tests/index.js:32:27
Это мой index.js
в папке тестов
const app = require('../app');
const port = require('../app').port
const superagent = require('superagent');
const expect = require('expect');
const server = require('http').createServer(app);
const boot = () => {
server.listen(app.get('port'), () => {
console.info(`Express server listening on port ${app.get('port')}`)
})
}
const shutdown = () => {
server.close()
}
console.info('Running app as a module')
exports.boot = boot
exports.shutdown = shutdown
exports.port = port
describe('server', () => {
before(() => {
boot()
})
describe('homepage', () => {
it('should respond to GET', (done) => {
superagent
.get(`http://localhost:${port}`)
.end((error, response) => {
expect(response.status).to.equal(200)
done()
})
})
})
after(() => {
shutdown()
})
}
Как решить проблему с использованием адресов? Где Mocha done () вызывается несколько раз?
Я установил supertest и изменил свой код. В любом случае, это указывает на почти такие же проблемы
0 passing (5ms)
2 failing
1) server
"before all" hook in "server":
Uncaught Error: listen EADDRINUSE: address already in use :::3000 (and Mocha's done() called multiple times)
at Server.setupListenHandle [as _listen2] (net.js:1313:16)
at listenInCluster (net.js:1361:12)
at Server.listen (net.js:1447:7)
at boot (tests/index.js:8:10)
at Context.<anonymous> (tests/index.js:24:5)
at processImmediate (internal/timers.js:456:21)
2) server
homepage
should respond to GET:
TypeError: supertest.get is not a function
Что не так с .get(
http://localhost: $ {port} )
?