2014-04-25 14 views
10

Używam konfiguracji mocha-phantomjs do testowania urządzenia. Mam następujące pack.json scriot do uruchomienia testów.Błąd npm ELIFECYCLE podczas uruchamiania testu

"scripts": { 
"test": "npm run testFlickr", 
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html" 
} 

To działa dobrze w przeglądarce. A kiedy uruchomić polecenie npm test cmd, test prowadzony w porządku, ale także daje następujący błąd

3 passing (5s) 
6 failing 


npm ERR! [email protected] testFlickr: `mocha-phantomjs ./test/FlickrTest.html` 
npm ERR! Exit status 6 
npm ERR! 
npm ERR! Failed at the [email protected] testFlickr script. 
npm ERR! This is most likely a problem with the flickr-test package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  mocha-phantomjs ./test/FlickrTest.html 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls flickr-test 
npm ERR! There is likely additional logging output above. 
npm ERR! System Windows_NT 6.1.7600 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod 
ejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "testFlickr" 
npm ERR! cwd C:\Users\user\Desktop\test 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 
npm ERR! code ELIFECYCLE 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  C:\Users\user\Desktop\test\npm-debug.log 
npm ERR! not ok code 0 
npm ERR! Test failed. See above for more details. 
npm ERR! not ok code 0 

Proszę ktoś może mi powiedzieć jak mogę rozwiązać ten błąd.

Odpowiedz

3

I kiedy uruchomić test polecenie cmd npm, na jazdę próbną alright

No nie są. Masz 6 nieudanych testów. Kod zakończenia mocha-phantomjs jest równy liczbie testów na niesprawności. Uruchom aplikację mocha-phantomjs ./test/FlickrTest.html bezpośrednio i zobacz, co się nie udaje. Zdaj sobie sprawę, że PhantomJS jest nieco inny niż twoja przeglądarka - możesz have to debug it.

Twoje ustawienia skryptu są nieparzyste. Powinieneś po prostu mieć:

"scripts": { 
    "test": "mocha-phantomjs ./test/FlickrTest.html" 
} 

Następnie nieparzyste błędy węzła powinny zniknąć.

+0

Ale chcę, żeby się nie udało na niewłaściwych danych wejściowych. –

7

Po uruchomieniu npm test powoduje błędy w postaci ELIFECYCLE, więc nigdy nie spotkasz się z tym doświadczeniem.

Reference to code

Po przeniesieniu skryptu testowego do innego skryptu nazwa-zaczniesz widzieć ELIFECYCLE błędów.

Moja poprawka polega na dodaniu exit 0 na końcu polecenia. Dla kodu będzie wyglądać następująco:

"scripts": { 
    "test": "npm run testFlickr", 
    "testFlickr": "mocha-phantomjs ./test/FlickrTest.html; exit 0" 
} 
+0

Napotkano ten problem, ponieważ chciałem mieć wiele skryptów testowych w pliku 'pakiet.json'. – Sgnl

+1

Dodanie '; exit 0' do końca dowolnych skryptów pominie błędy. – joemaller

+0

@joemaller nie w Windows to nie działa. –

1

Jest to problem przy korzystaniu npm run, że ma do czynienia z Mocha wychodzenia z == 0 kod gdy test nie powiedzie się!. Jeśli jesteś na Windows spróbuj tego:

"scripts": { 
    "test": "npm run testFlickr || ECHO.", 
    "testFlickr": "mocha-phantomjs ./test/FlickrTest.html || ECHO." 
} 
0

miałem ten sam problem, a co to ustalone dla mnie było, kiedy uruchomić moje testy jednostkowe, czy NIE użycie

npm run test 

zamiast użyj:

npm test 
Powiązane problemy