【发布时间】:2020-07-03 07:21:21
【问题描述】:
我正在尝试用 jest 和 supertest 测试我的 API 端点:
我的测试路线文件:
const app = require('../../index')
const request = require('supertest')
describe('test app endpoints', ()=>{
test('index should return 200 code', async (done) =>{
const response = await request(app).get('/')
expect(response.statusCode).toBe(200)
done()
})
index.js:
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const port = 3000
app.set('view engine', 'ejs')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use('/', require('./routes/conversions'))
module.exports = app.listen(port, (err) => {
if (err) throw err
console.log(`Server is running on port ${port}`)
})
当我运行这个测试时,我收到关于占用端口的错误:
listen EADDRINUSE: address already in use :::3000
我怎样才能解决这个问题并且不阻止我的端口进行测试?
【问题讨论】:
-
使用不同的端口?你真的不应该使用低于 8000 左右的端口号。
-
我尝试将我的端口号更改为其他内容,但我得到了同样的错误,但使用了新的端口号。
-
它是否试图多次启动您的应用程序?因为那是行不通的......
标签: javascript node.js jestjs supertest