Quiero verificar una función que puede actualizarse después de un minuto, y configuré un poco de suspensión en mi código, pero mi valor de tiempo de espera predeterminado es 15000 ms, mi código tiene una suspensión de 60000 ms, por lo que devuelve este error:
thrown: "Exceeded timeout of 15000 ms for a test. Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."mi código está aquí:
it('shows that timeline can get updated after one minute', async () => { await selectTimeForTimeLine.selectTime('Last 5 minutes'); await page.waitForTimeout(3000); const defaultTime = await alarmTimeLine.xAxisValues(); await page.evaluate(() => { return new Promise((resolve) => setTimeout(resolve, 60000)); }); const correntTime = await alarmTimeLine.xAxisValues(); expect(defaultTime).not.toEqual(correntTime); }); ¿Dónde debo poner jest.setTimeOut() ? Quiero aumentar el valor de tiempo de espera excedido a 70000 ms para asegurarme de que mi código funcione bien.
Para establecer un tiempo de espera en una sola prueba, pase una tercera opción a it/test , por ejemplo:
it('testing balabala', async () => { ... }, 70000);De los documentos jest.setTimeout() :
Establezca el intervalo de tiempo de espera predeterminado para las pruebas y antes/después de los ganchos en milisegundos. Esto solo afecta al archivo de prueba desde el que se llama a esta función.
Es decir, jest.setTimeout() se maneja a nivel de archivo . Su ejemplo no lo deja claro, pero debería haber ejecutado jest.setTimeout() en la parte superior de su archivo de prueba:
const SECONDS = 1000; jest.setTimeout(70 * SECONDS) describe(`something`, () => { it('works', async () => { asset(true).isTruthy() }); })Actualización: ahora he enviado un PR al equipo de Jest, que ha sido aceptado, para aclarar los documentos. Ahora leen:
Para establecer intervalos de tiempo de espera en diferentes pruebas en el mismo archivo, use la opción de tiempo de espera en cada prueba individual.
Después de actualizar a v28+, este jest.setTimeout() ya no funciona para mí. Tengo que configurar el tiempo de espera explícitamente en ./jest.config.js :
// jest.config.js module.exports = { // ... testTimeout: 70000 }