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.optsque 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
describellamada 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 dethisese Mocha configurado por usted). Por ejemplo, esto generalmente no funcionará :Esto se debe a que una función de flecha toma
thisdel ámbito en el que aparece la función. Mocha llamará a la función con un buen valorthispero 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.optsthis, que generalmente dathis.timeoutcomo 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 funcionasetTimeoutinstrucciones explícitas dentro de las pruebas.Agregando esto para completar. Si (como yo) usa un script en su
package.jsonarchivo, simplemente agregue la--timeoutopción a mocha:Luego puede ejecutar
npm run testpara 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
timeoutparámetro. Por el contrario, mochajs.org/#timeouts le dice que insertesetTimeoutinstrucciones explícitas dentro de las pruebas.