javascript - tablas - Cambiar el tiempo de espera predeterminado para mocha
obtener datos de una tabla html javascript (4)
Agregando esto para completar. Si usted (como yo) usa un script en su archivo package.json
, simplemente agregue la opción --timeout
a mocha:
"scripts": {
"test": "mocha ''test/**/*.js'' --timeout 10000",
"test-debug": "mocha --debug ''test/**/*.js'' --timeout 10000"
},
Luego puede ejecutar la npm run test
ejecución npm run test
para ejecutar su suite de prueba con el tiempo de espera establecido en 10,000 milisegundos.
Tengo la siguiente pregunta si tenemos el archivo de prueba unitario my-spec.js y ejecutamos con mocha:
mocha my-spec.js
el tiempo de espera predeterminado será de 2000 m. Se puede sobrescribir para una prueba parcial con un parámetro de línea de comando:
mocha my-spec.js --timeout 5000
La pregunta es: ¿es posible cambiar el tiempo de espera predeterminado globalmente para todas las pruebas? Es decir, cuando llamas
mocha my-spec.js
el valor de tiempo de espera predeterminado es diferente de 2000 ms Gracias de antemano
De forma predeterminada, Mocha leerá un archivo llamado test/mocha.opts
que puede contener argumentos de línea de comando. Entonces podrías crear un archivo que contenga:
--timeout 5000
Siempre que ejecute Mocha en la línea de comando, leerá este archivo y establecerá un tiempo de espera de 5 segundos por defecto.
Otra forma que puede ser mejor dependiendo de su situación es establecerlo así en una llamada de describe
nivel superior en su archivo de prueba:
describe("something", function () {
this.timeout(5000);
// tests...
});
Esto le permitiría establecer un tiempo de espera solo por archivo.
Puede usar ambos métodos si quiere un valor predeterminado global de 5000 pero establece algo diferente para algunos archivos.
Tenga en cuenta que generalmente no puede usar una función de flecha si va a llamar this.timeout
(o acceder a cualquier otro miembro de this
que Mocha establezca para usted). Por ejemplo, esto generalmente no funcionará :
describe("something", () => {
this.timeout(5000);
// tests...
});
Esto se debe a que una función de flecha toma this
del alcance en el que aparece la función. Mocha llamará a la función con un buen valor para this
pero ese valor no se pasa dentro de la función de flecha. La documentación de Mocha dice sobre este tema :
Se desaconseja pasar funciones de flecha ("lambdas") a Mocha. Debido a la vinculación léxica de esto, tales funciones no pueden acceder al contexto de Mocha.
Si sucede (como yo) que ejecuta Mocha en un navegador en lugar de en el servidor, siempre puede cambiar la configuración global utilizando mocha.setup
.
mocha.setup({ timeout: 5000 });
Simplemente agregue la línea de arriba en cualquier parte de su conjunto de pruebas, preferiblemente en la parte superior de su especificación o en un auxiliar de prueba por separado.
Aquí está el enlace a la documentación con algunos ejemplos que muestran cómo configurar Mocha en el navegador.
Simplemente agregando a la respuesta correcta puede configurar el tiempo de espera con la función de flecha de esta manera:
it(''Some test'', () => {
}).timeout(5000)