I want to set timeout value on before hook in mocha test cases. I know I can do that by adding -t 10000
on the command line of mocha but this will change every test cases timeout value. I want to find a way to change the timeout programmatically below is my code:
describe('test ', () => {
before((done) => {
this.timeout(10000);
...
it will complain about the line this.timeout(1000)
that timeout
is not defined. How to set the timeout on before hook.
Best Answer
You need to set a timeout in your
describe
block rather than in the hook if you want it to affect all the tests in thedescribe
. However, you need to use a "regular" function as the callback todescribe
rather than an arrow function:In all places where you want to use
this
in a callback you pass to Mocha you cannot use an arrow function. You must use a "regular" function which has its ownthis
value that can be set by Mocha. If you use an arrow function, the value ofthis
won't be what Mocha wants it to be and your code will fail.You could set a different timeout for your before hook but there are two things to consider:
before
hook and would not affect your tests.