Я использую установку mocha-phantomjs для модульного тестирования. У меня есть следующий скрипт package.json для запуска тестов.

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

Это нормально работает в браузере. И когда я запускаю команду npm test в cmd, тест проходит нормально, но также дает следующую ошибку

3 passing (5s)
6 failing


npm ERR! flickr-test@ testFlickr: `mocha-phantomjs ./test/FlickrTest.html`
npm ERR! Exit status 6
npm ERR!
npm ERR! Failed at the flickr-test@ 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

Кто-нибудь может сказать мне, как я могу решить эту ошибку.

25
user3115091 25 Апр 2014 в 10:48

4 ответа

Лучший ответ

И когда я запускаю команду npm test в cmd, тест запускается нормально

Нет, это не так. У вас 6 неудачных тестов. Код выхода mocha-phantomjs равен количеству неудачных тестов. Запустите mocha-phantomjs ./test/FlickrTest.html напрямую и посмотрите, что не удается. Поймите, PhantomJS немного отличается от вашего браузера - вам, возможно, придется отладить его.

У вас странная настройка скрипта. У вас должно быть просто:

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

Тогда нечетные ошибки узлов должны исчезнуть.

5
Nathan Black 25 Апр 2014 в 15:05

У меня была такая же проблема, и я решил, что когда я запускаю свои модульные тесты, НЕ используйте

npm run test

вместо этого используйте:

npm test
26
Jared 23 Фев 2018 в 04:10

При запуске npm test он подавляет ошибки ELIFECYCLE, поэтому вы никогда не столкнетесь с этим.

Ссылка на код

Как только вы переместите тестовый сценарий на другое имя сценария, вы начнете видеть ошибки ELIFECYCLE.

Мое решение - добавить exit 0 в конец команды. Для вашего кода это будет выглядеть так:

"scripts": {
  "test": "npm run testFlickr",
  "testFlickr": "mocha-phantomjs ./test/FlickrTest.html; exit 0" 
}
19
Sgnl 5 Ноя 2015 в 00:16

Это проблема при использовании npm run, она связана с выходом Mocha с кодом! == 0 всякий раз, когда тест не проходит. Если вы работаете в Windows, попробуйте следующее:

"scripts": {
  "test": "npm run testFlickr || ECHO.",
  "testFlickr": "mocha-phantomjs ./test/FlickrTest.html || ECHO." 
}
4
Mihai Farcas 23 Май 2017 в 18:12