Javascript 茉莉花测试时未处理的承诺拒绝错误

Javascript 茉莉花测试时未处理的承诺拒绝错误,javascript,node.js,express,request,jasmine,Javascript,Node.js,Express,Request,Jasmine,服务器正在工作(由邮递员测试)。如果启动服务器并删除beforeAll和aftereall处理程序,代码也可以工作。控制台输出为: 应用程序正在端口3200上侦听! 服务器启动后 我不明白问题出在哪里 import request from 'request'; import { start, stop } from '../src/server'; describe('A suite', function () { beforeAll(async () => { aw

服务器正在工作(由邮递员测试)。如果启动服务器并删除beforeAll和aftereall处理程序,代码也可以工作。控制台输出为: 应用程序正在端口3200上侦听! 服务器启动后 我不明白问题出在哪里

import request from 'request';
import { start, stop } from '../src/server';



describe('A suite', function () {

  beforeAll(async () => {
    await start();
  });

  afterAll(async () => {
    await stop();
  });

  it('server test', async () => {
    const data = { tableName: 'supply' };

    console.log('after server start');

    const response = await new Promise((resolve, reject) => {
      request.post({
        url: 'http://localhost:3200/getTable',
        json: data
      }, (error, response, body) => {
        if (error) {
          reject(body);
        } else {
          resolve(body);
        }
      });
    });

    console.log(response);
  });
});
const start=async():Promise=>{
等待新的承诺((决定,拒绝)=>{
服务器=应用程序。侦听(端口,()=>{
log(`App监听端口${port}!`);
解决();
});
});
}
const stop=async():Promise=>{
等待新承诺((解决,拒绝)=>server.close(()=>{
console.log('应用程序已成功关闭')
解决();
}));
}
我发现问题在于,当我运行测试时,无法建立到数据库的连接。知道在运行jasmine时如何创建到数据库的连接吗?从测试中调用start()与只运行npm start有什么区别。当我使用npm启动时,一切正常,但当我从jasmine调用它时,无法连接到db


这是一个typescript问题,类似于测试是使用node运行的,但它们应该使用ts node运行。我用命令运行测试:tsc;茉莉花。

我用茉莉花ts解决了这个问题。问题是我用tsc进行测试;茉莉花

我用茉莉花ts解决了这个问题。问题是我用tsc进行测试;茉莉花

const start = async (): Promise<void> => {
  await new Promise((resolve, reject) => {
    server = app.listen(port, () => {
      console.log(`App listening on port ${port}!`);
      resolve();
    });
  });
}

const stop = async (): Promise<void> => {
  await new Promise((resolve, reject) => server.close(() => {
    console.log('App closed successfully')
    resolve();
  }));
}