es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración de Supertest + Express causa error de tiempo de espera.

Tengo una configuración simple en el archivo server.test.js

import 'regenerator-runtime/runtime';

const request = require('supertest');
const express = require("express");
const app = express();

app.get('/user', function(req, res) {
  res.status(200).json({ name: 'john' });
});

describe('GET /user', function() {
  it('responds with json', async function(done) {
    const response = await request(app)
      .get('/user')
    expect(response.status).toBe(201)
  })
})

Ejecuto npx jest y recibo thrown: "Exceeded timeout of 5000 ms for a test., aumentar el tiempo de espera no ayuda en jest.config.js en testTimeout: 20000, espera los 20s y también falla.

¿Por qué la aplicación express inicia con superset? Usé un ejemplo del README oficial.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es una práctica común usar supertest para probar aplicaciones Express, ya que proporciona métodos fáciles de usar para simular solicitudes HTTP a su servidor. En el ejemplo proporcionado, supertest se utiliza para hacer una solicitud HTTP GET a un punto final de la aplicación Express “/user”, que responde con un objeto JSON que contiene un campo de nombre.

    Respecto al problema de tiempo de espera, parece que la prueba está tardando más que el tiempo de espera predeterminado de 5 segundos en completarse. Aumentar el tiempo de espera a 20 segundos en jest.config.js no resolvió el problema, lo que sugiere que puede haber un problema con la prueba en sí misma en lugar de con la duración del tiempo de espera.

    Algunas posibles soluciones a este problema podrían ser refactorizar el código de prueba para hacerlo más eficiente, o aislar el problema ejecutando las pruebas con la opción –runInBand para ejecutarlas de forma secuencial en lugar de en paralelo, lo que puede ayudar a identificar qué prueba(s) están causando el problema.

Comments are closed.