Se tivermos um arquivo de teste de unidade my-spec.js e em execução com o mocha:
mocha my-spec.js
O tempo limite padrão será 2000 ms. Pode ser substituído para teste parcial com um parâmetro de linha de comando:
mocha my-spec.js --timeout 5000
É possível alterar o tempo limite padrão globalmente para todos os testes? ou seja, o valor padrão do tempo limite será diferente de 2000 ms quando você chamar:
mocha my-spec.js
Respostas:
Por padrão, o Mocha lerá um arquivo chamado
test/mocha.opts
que pode conter argumentos de linha de comando. Então você pode criar um arquivo que contenha:Sempre que você executar o Mocha na linha de comando, ele lerá esse arquivo e definirá um tempo limite de 5 segundos por padrão.
Outra maneira que pode ser melhor, dependendo da sua situação, é configurá-la dessa maneira em uma
describe
chamada de nível superior no seu arquivo de teste:Isso permitiria definir um tempo limite somente por arquivo.
Você pode usar os dois métodos se desejar um padrão global de 5000, mas definir algo diferente para alguns arquivos.
Observe que você geralmente não pode usar uma função de seta se quiser ligar
this.timeout
(ou acessar qualquer outro membrothis
que o Mocha defina para você). Por exemplo, isso geralmente não funciona :Isso ocorre porque uma função de seta assume
this
o escopo em que a função aparece. O Mocha chamará a função com um bom valor,this
mas esse valor não será passado dentro da função de seta. A documentação para o Mocha diz sobre este tópico :fonte
/home/me/src/proj/
, o Mocha procurará esse arquivo:/home/me/src/proj/test/mocha.opts
this
, o que geralmente resulta emthis.timeout
falha, como você mostra em seu comentário.Apenas adicionando à resposta correta, você pode definir o tempo limite com a função de seta da seguinte maneira:
fonte
describe('suite', () => {...}).timeout(5000)
não funcionasetTimeout
instruções explícitas dentro dos testes.Adicionando isso para completar. Se você (como eu) usa um script em seu
package.json
arquivo, basta adicionar a--timeout
opção ao mocha:Em seguida, você pode executar
npm run test
para executar seu conjunto de testes com o tempo limite definido para 10.000 milissegundos.fonte
Nas versões atuais do Mocha, o tempo limite pode ser alterado globalmente assim:
Basta adicionar a linha acima em qualquer lugar do seu conjunto de testes, de preferência na parte superior da sua especificação ou em um auxiliar de teste separado.
Nas versões mais antigas, e apenas em um navegador, você pode alterar a configuração global usando
mocha.setup
.A documentação não cobre a configuração de tempo limite global, mas oferece alguns exemplos de como alterar o tempo limite em outros cenários comuns.
fonte
timeout
parâmetro. Pelo contrário, mochajs.org/#timeouts diz para inserirsetTimeout
instruções explícitas dentro dos testes.