Jestjs Nestjs e2e测试在getHttpServer上失败,但与.agent一起工作

Jestjs Nestjs e2e测试在getHttpServer上失败,但与.agent一起工作,jestjs,nestjs,Jestjs,Nestjs,我试图使用以下代码在nestjs中编写我的第一个e2e测试: describe('AppController (e2e)', () => { let app: INestApplication; beforeAll(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [ AppModule, ]

我试图使用以下代码在nestjs中编写我的第一个e2e测试:

describe('AppController (e2e)', () => {
  let app: INestApplication;

  beforeAll(async () => {
    const moduleFixture: TestingModule = await Test.createTestingModule({
      imports: [
        AppModule,
      ]    
    }).compile();

    app = moduleFixture.createNestApplication();
    await app.init();
    await getConnection().synchronize(true);
  });

  it('/ (GET)', async () => {
    return request(app.getHttpServer())
      .get('/')
      .expect(200);
  });

  afterAll(async () => {
    await app.close();
  });
});
在尝试调试我看到的supertest请求时,404总是失败:

{
   errno: -61,
   code: 'ECONNREFUSED',
   syscall: 'connect',
   address: '127.0.0.1',
   port: 57523,
   response: undefined
 }
如果我尝试使用
.agent('127.0.0.1:3000')
连接到实际应用程序,则测试通过

  it('/ (GET)', async () => {
    return request
     .agent('127.0.0.1:3000')
     .get('/')
     .expect(200)
  });

你必须等待答复。做一些类似的事情。请看下面的代码片段,我在其中添加了wait to response,而不是return

  it('should throw validation error when creating employer policy', async () => {
const data = {
  max_percent_of_salary: true,
  is_employer_paid: true,
  has_advance_activated: false,
};

const response = await request(app.getHttpServer())
  .post('/sa-employer-policy/create/')
  .set('Accept', 'application/json')
  .set('Authorization', 'Bearer ' + employer_token)
  .send(data)
  .expect(HttpStatus.BAD_REQUEST);

expect(response.body.message).toBeDefined();

}))

问题是,我使用的是来自控制器的端点,而没有导入父模块。

感谢您的回答,wait没有任何区别wait getConnection()。synchronize(true);应位于app.init的上方