Estoy enviando una solicitud de red en un caso de prueba, pero esto a veces lleva más de 2 segundos (el tiempo de espera predeterminado).
¿Cómo aumento el tiempo de espera para un solo caso de prueba?
Aquí tienes: http://mochajs.org/#test-level
it('accesses the network', function(done){
this.timeout(500);
[Put network code here, with done() in the callback]
})
Para la función de flecha, utilice lo siguiente:
it('accesses the network', (done) => {
[Put network code here, with done() in the callback]
}).timeout(500);
before(function(done){this.timeout(5 * 1000);...});
.timeout(500)
al final deit(...).timeout(500)
Si desea utilizar las funciones de flecha es6, puede agregar un
.timeout(ms)
al final de suit
definición:Al menos esto funciona en mecanografiado.
fuente
.timeout
no está incluido en las tipificaciones DefinitelyTyped para mocha: i.imgur.com/jQbWCn1.png - Usarthis.timeout(2000)
othis.slow(500)
con una función antigua normal funciona y se compila sin erroresit
, no funcionadescribe
.describe()
ocontext()
?.timeout
se incluye ahora en tipificaciones de Mocha DefinitelyTyped en:Mocha.IRunnable
. Sin embargo, si está utilizando el IDE de Webstorm para ejecutar estas pruebas, una nota de precaución: por cualquier razón, el complemento de integración Mocha de WebStorm todavía no reconoce las pruebas Mocha con.timeout()
adjuntas (lo que significa que no aparece el botón 'ejecutar' junto a ellas), y por eso abogo por evitar las funciones de flecha para permitir el uso de en suthis.timeout()
lugar.(desde que me encontré con esto hoy)
Tenga cuidado al usar la sintaxis de flecha de grasa ES2015:
Esto fallará:
EDITAR: Por qué falla:
Como @atoth menciones en los comentarios, las flechas de grasa funciones no tienen su propia esta unión. Por lo tanto, no es posible que la función it se una a esta devolución de llamada y proporcione una función de tiempo de espera .
En pocas palabras : no utilice las funciones de flecha para las funciones que necesitan un mayor tiempo de espera.
fuente
this
enlace en las funciones de flecha, no de la misma manera sugeriría que tienen algún tipo de, simplemente diferente. Solo tienen ámbitos léxicos. No puede vincular esto no existente. Por eso.bind
,.call
etc. no funciona con él.this
es.Si está utilizando NodeJS, puede configurar el tiempo de espera en package.json
entonces puedes ejecutar usando npm como:
fuente
Desde la línea de comando:
fuente
También puede pensar en adoptar un enfoque diferente y reemplazar la llamada al recurso de red con un trozo o un objeto simulado. Con Sinon , puede desacoplar la aplicación del servicio de red, enfocando sus esfuerzos de desarrollo.
fuente
Para navegación de prueba en
Express
:En el ejemplo, el tiempo de prueba es 4000 (4s).
Nota:
setTimeout(done, 3500)
es menor de lo quedone
se llama dentro del tiempo de la prueba, peroclearTimeout(timeOut)
evita que se use todo este tiempo.fuente
¡Esto funcionó para mí! No se pudo encontrar nada para que funcione antes ()
fuente