Si tenemos un archivo de prueba de unidad my-spec.js y se ejecuta con mocha:
mocha my-spec.js
El tiempo de espera predeterminado será de 2000 ms. Se puede sobrescribir para una prueba parcial con un parámetro de línea de comando:
mocha my-spec.js --timeout 5000
¿Es posible cambiar el tiempo de espera predeterminado globalmente para todas las pruebas? es decir, el valor de tiempo de espera predeterminado será diferente de 2000 ms cuando llame a:
mocha my-spec.js
Respuestas:
Por defecto, Mocha leerá un archivo llamado
test/mocha.opts
que puede contener argumentos de línea de comando. Entonces podría crear un archivo que contenga:Cada vez que ejecute Mocha en la línea de comando, leerá este archivo y establecerá un tiempo de espera de 5 segundos de forma predeterminada.
Otra forma que puede ser mejor dependiendo de su situación es configurarlo así en una
describe
llamada de nivel superior en su archivo de prueba:Esto le permitiría establecer un tiempo de espera solo por archivo.
Puede usar ambos métodos si desea un valor predeterminado global de 5000 pero establecer algo diferente para algunos archivos.
Tenga en cuenta que, por lo general, no puede usar una función de flecha si va a llamar
this.timeout
(o acceder a cualquier otro miembro dethis
ese Mocha configurado por usted). Por ejemplo, esto generalmente no funcionará :Esto se debe a que una función de flecha toma
this
del ámbito en el que aparece la función. Mocha llamará a la función con un buen valorthis
pero ese valor no se pasa dentro de la función de flecha. La documentación para Mocha dice sobre este tema :fuente
/home/me/src/proj/
entonces Mocha buscará este archivo:/home/me/src/proj/test/mocha.opts
this
, que generalmente dathis.timeout
como resultado un error como se muestra en su comentario.Simplemente agregando a la respuesta correcta, puede establecer el tiempo de espera con la función de flecha de esta manera:
fuente
describe('suite', () => {...}).timeout(5000)
no funcionasetTimeout
instrucciones explícitas dentro de las pruebas.Agregando esto para completar. Si (como yo) usa un script en su
package.json
archivo, simplemente agregue la--timeout
opción a mocha:Luego puede ejecutar
npm run test
para ejecutar su conjunto de pruebas con el tiempo de espera establecido en 10,000 milisegundos.fuente
En las versiones actuales de Mocha, el tiempo de espera se puede cambiar globalmente de esta manera:
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 asistente de prueba separado.
En versiones anteriores, y solo en un navegador, puede cambiar la configuración global mediante
mocha.setup
.La documentación no cubre la configuración del tiempo de espera global, pero ofrece algunos ejemplos sobre cómo cambiar el tiempo de espera en otros escenarios comunes.
fuente
timeout
parámetro. Por el contrario, mochajs.org/#timeouts le dice que insertesetTimeout
instrucciones explícitas dentro de las pruebas.