Как установить и запустить Mocha, модуль тестирования Node.js?Получение "mocha: команда не найдена" после установки - PullRequest
79 голосов
/ 15 марта 2012

У меня проблемы с тем, чтобы Мокко работал как положено, и я бы хотел сказать, как задокументировано, но (кажется) не так много документации по фактическому запуску.

Я установил его, используя npm (как глобально, так и локально), и каждый раз, когда я запускаю его, я получаю:

$ mocha
mocha: command not found

Хорошо, поэтому я решил, что его нет в моем PATH, поэтому я попытался запустить его напрямую,

$ ./node_modules/mocha/bin/mocha 
execvp(): No such file or directory

Наконец, я попытался нажать другой файл bin и получил

$ ./node_modules/mocha/bin/_mocha 
path.existsSync is deprecated. It is now called `fs.existsSync`.

  .

  ✔ 1 tests complete (1ms)

Как я могу просто выполнить свои тесты сединственная команда? Клятвы , кажется, позволяет вам, но я слышал, что Mocha - лучший выбор, я просто не могу заставить его работать правильно.

И любые мысли по поводу ошибки, которые я получил вышев моей третьей попытке?

Редактировать:

Я бегу,

  • Ubuntu 11.10 64-bit
  • Node.js 0.7.5
  • npm 1.1.8
  • мокко 0.14.1
  • должно 0.6.0

Ответы [ 3 ]

162 голосов
/ 30 июня 2014

начиная с npm 5.2.0, есть новая команда "npx", включенная в npm, которая делает это намного проще, если вы запустите:

npx mocha <args>

Примечание: необязательные аргументы направляются выполняемой команде(в этом случае mocha)

это автоматически выберет исполняемую команду "mocha" из вашего локально установленного mocha (всегда добавляйте ее как зависимость dev, чтобы гарантировать, что правильный и всегда используется вами и всеми остальными).

Будьте осторожны: если вы не установили mocha, эта команда автоматически выберет и использует последнюю версию, что отлично подходит для некоторых инструментов (например, для скаффолдеров), но может быть не самым рекомендуемымзависимости, где вы можете прикрепить к определенной версии.

Подробнее о npx вы можете прочитать здесь


Теперь, если вместо прямого вызова mocha, вывы хотите определить собственный скрипт npm, псевдоним, который может вызывать другие двоичные файлы npm ...

вы не хотите, чтобы ваши библиотечные тесты проваливались в зависимости отПри настройке машины (mocha как глобальная, глобальная версия mocha и т. д.), способ использовать локальный mocha, который работает кроссплатформенно:

node node_modules/.bin/mocha

npm помещает псевдонимы для всех двоичных файлов в ваших зависимостяхв этой специальной папке.Наконец, npm автоматически добавит node_modules / .bin в PATH при запуске сценария npm, поэтому в вашем файле package.json вы можете просто:

"scripts": {
  "test": "mocha"
}

и вызывать его с помощью

npm test
18 голосов
/ 15 марта 2012

После дальнейшего прочтения и подтверждения от Линуса Г Тиля, приведенного выше, я обнаружил, что мне просто необходимо,

  • Снизить до Node.js 0.6.12
  • И либо,
    • Установить Mocha как глобальный
    • Добавить ./node_modules/.bin в мой PATH
0 голосов
/ 10 мая 2019

Для окон:

Package.json

  "scripts": {
    "start": "nodemon app.js",
    "test": "mocha"
  },

, затем выполнить команду

npm run test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...