我正在使用mocha测试框架,在运行以下测试后它并没有退出。我尝试了Promise和async await,但都没有成功。在mocha命令的结尾加上--exit可以解决问题,但我想找到问题的根源。
我想知道是否是在运行beforeEach和afterEach函数时knex数据库连接的问题。然而,除了destroy()之外,我不知道如何断开db连接,如果使用此方法,则以下测试将无法运行。
有人能在代码中发现可能导致此问题的内容吗?或者推荐其他解决方法吗?
我想知道是否是在运行beforeEach和afterEach函数时knex数据库连接的问题。然而,除了destroy()之外,我不知道如何断开db连接,如果使用此方法,则以下测试将无法运行。
有人能在代码中发现可能导致此问题的内容吗?或者推荐其他解决方法吗?
const app = require('../../app');
const request = require('supertest');
describe('Route: /' + route, () => {
let token = '';
let route = 'user';
before(function (done) {
const user = {email: 'admin@email.com', password: 'password'};
request(app)
.post('/login')
.send(user)
.end((err, res) => {
token = res.body.token;
done();
});
});
beforeEach(async () => {
await knex.migrate.rollback();
await knex.migrate.latest();
await knex.seed.run();
});
afterEach(() => knex.migrate.rollback());
it(`should not be able to consume /${route} since no token was sent`, (done) => {
request(app)
.get(`/${route}`)
.expect(401, done)
});
it(`should be able to consume /${route} since a valid token was sent`, (done) => {
request(app)
.get(`/${route}`)
.set('Authorization', 'Bearer ' + token)
.expect(200, done);
});
});
node:test
),而这个解决方案同样修复了我的问题(感谢@Matthew)。 - machineghostnode:test
),这个解决方案同样解决了我的问题(感谢@Matthew)。 - undefined