2017-01-31 33 views
10

Chcę ustawić wartość limitu czasu przed hakiem w przypadkach testowych mokka. Wiem, że mogę to zrobić, dodając -t 10000 w linii poleceń mocha, ale to zmieni każdą wartość limitu czasu przypadków testowych. Chcę znaleźć sposób, aby zmienić czas programowo poniżej jest mój kod:Jak ustawić limit czasu przed hakiem w mokka?

describe('test ',() => { 

    before((done) => { 
     this.timeout(10000); 
     ... 

będzie narzekać na linii this.timeout(1000) że timeout nie jest zdefiniowana. Jak ustawić limit czasu przed hakiem.

Odpowiedz

23

Musisz ustawić limit czasu w bloku describe, a nie w haku, jeśli chcesz, aby wpłynął na wszystkie testy w describe. Jednak trzeba użyć funkcji „regular” jako callback do describe zamiast funkcji strzałką:

describe('test', function() { 
    this.timeout(10000); 

    before(...); 

    it(...); 
}); 

We wszystkich miejscach, w których chcesz używać this w zwrotnego możesz przekazać do Mocha nie można użyć strzałki funkcjonować. Musisz użyć "zwykłej" funkcji, która ma własną wartość this, którą można ustawić za pomocą Mocha. Jeśli użyjesz funkcji strzałki, wartość this nie będzie tym, co Mocha chce, a Twój kod się nie powiedzie.

Ty mógłby ustawić inny limit czasu dla swojego przed hakiem, ale są dwie rzeczy do rozważenia:

  1. Tutaj też trzeba by użyć funkcji „regular” zamiast funkcji strzałki tak :

    before(function (done) { 
        this.timeout(10000); 
    
  2. byłoby to ustawić limit czasu tylko na haku before i nie wpływa na testy.

+0

idealna odpowiedź :) – greuze