2016-07-20 8 views
3

Beim Laufen reagieren-native Tests in Mokka, ich die folgende Fehlermeldung erhalten:Erste Reference: holen ist nicht beim Laufen reagiert nativen Tests in Mokka definiert

> mocha --require test/init.js --compilers js:test/compiler.js 'src/**/*.spec.js' 

Initializing tap mocha reporter... 
1..7 
ok 1 test1 
… 
not ok 7 test7 
    ReferenceError: fetch is not defined 
     at foo (src/foo.js:59:8) 
     at Context.<anonymous> (src/__specs__/foo.spec.js:9:30) 
# tests 7 
# pass 6 
# fail 1 
npm ERR! Test failed. See above for more details. 

Antwort

10

Das Problem, dass holen wurde, ist nicht verfügbar in einer Knotenumgebung wie Mocha. Ich bin mir nicht sicher, warum reaction-native-mock (was ich auch benutze) keinen Spott dafür hat, aber die Lösung bestand darin, isomorphic-fetch zu verlangen, wenn ich meine Mokkatests initialisiere.

Insbesondere eine init-Datei auf Ihre Mokka-Befehlszeile hinzufügen, wenn Sie noch keines haben:

> mocha --require init.js … 

und in Init.js erfordert isomorph-Fetch:

require('isomorphic-fetch') 

Dann wieder mokka:

> mocha --require test/init.js --compilers js:test/compiler.js 'src/**/*.spec.js' && standard 

Initializing tap mocha reporter... 
1..7 
ok 1 test1 
… 
ok 7 test7 
# tests 7 
# pass 7 
# fail 0 
+2

Oder 'mocha --quotieren isomorphic-fetch'. Vielen Dank! – Andy

+0

lebensretter !!! fyi - Ich habe vorher 'whatwg-fetch' verwendet und nur dann, wenn 'fetch'-Aufrufe nicht in Knoten-JS-Umgebung (z. B. Mocha-Tests) festgestellt wurden, erkannte ich, dass' whatwg-fetch' nur in der Browser-Umgebung funktioniert. Ich ersetzte alle "Whatwg-Fetch" durch "Isomorphic-Fetch" (mit ähnlichen Anweisungen) und funktioniert jetzt wunderbar! – Atlas7