Как установить и запустить Mocha, модуль тестирования Node.js? Получение "mocha: command not found" после установки

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

Я установил его с помощью 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)

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

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

Edit:

Я бегу,

  • Ubuntu 11.10 64-разрядный
  • Node.js 0.7.5
  • npm 1.1.8
  • mocha 0.14.1
  • должен 0.6.0

Ответ 1

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

npx mocha <args>

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

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

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

Вы можете прочитать больше о 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

Ответ 2

После дальнейшего чтения и подтверждения от Linus G Thiel выше я обнаружил, что просто должен был

  • Переход на Node.js 0.6.12
  • И либо,
    • Установить Mocha как глобальную
    • Добавьте ./node_modules/.bin в мой PATH

Ответ 3

Для окон:

Package.json

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

затем запустите команду

npm run test

Ответ 4

При установке узловых модулей для мокко я пробовал следующие команды - установка npm - npm установить мокко - npm install --save-dev mocha - npm install mocha -g # для его глобальной установки

и при запуске или выполнении теста мокко я пытался - тест мокко - npm run test - тест мокко \index.test.js - тест npm

но я получаю следующее сообщение об ошибке:
"Мокко" не распознается как внутренняя или внешняя команда

Итак, после того, как все испробовано, получилось просто установить путь к переменным среды в System Variables следующим образом: C:\Program Files\nodejs \ и это сработало :)