Ошибка npm ELIFECYCLE при запуске теста
Я использую настройку mocha-phantomjs для модульного тестирования. У меня есть следующий пакет.json scriot для запуска тестов.
"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
Пожалуйста, кто-нибудь может сказать мне, как я могу решить эту ошибку.
4 ответа
И когда я запускаю команду npm test в cmd, тест запускается нормально
Нет, это не так. У вас есть 6 провальных тестов. Код выхода mocha-phantomjs
равно количеству провальных тестов. Бежать mocha-phantomjs ./test/FlickrTest.html
прямо и посмотрим, что не получается. Поймите, что PhantomJS немного отличается от вашего браузера - возможно, вам придется его отладить.
Ваш сценарий настройки странный. Вы должны просто иметь:
"scripts": {
"test": "mocha-phantomjs ./test/FlickrTest.html"
}
Тогда ошибки нечетного узла должны исчезнуть.
У меня была такая же проблема, и что я исправил, когда запускал свои модульные тесты, НЕ используйте
npm run test
вместо этого используйте:
npm test
При беге npm test
это хлюпает ELIFECYCLE
ошибки, чтобы вы никогда не сталкивались с этим опытом.
Переместив тестовый скрипт на другое имя скрипта, вы увидите ELIFECYCLE
ошибки.
Мое исправление - добавить exit 0
до конца команды. Для вашего кода это будет выглядеть так:
"scripts": {
"test": "npm run testFlickr",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html; exit 0"
}
Это проблема при использовании npm run
, это связано с выходом Mocha с кодом!== 0 при неудачном завершении теста. Если вы используете Windows, попробуйте это:
"scripts": {
"test": "npm run testFlickr || ECHO.",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html || ECHO."
}