У меня проблемы с тем, чтобы 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)
Как я могу просто выполнить свои тесты с помощью одной команды? Клятвы, кажется, позволяют вам, но я слышал, что Mocha - лучший выбор, я просто не могу заставить его работать правильно.
И есть какие-нибудь мысли по поводу ошибки, которую я получил при третьей попытке?
Редактировать:
Я бегу,
- Ubuntu 11.10 64-разрядная.
- Node.js 0.7.5
- нпм 1.1.8
- мокко 0,14,1
- должен 0.6.0
npm install mocha
я получаю,./node_modules/.bin/mocha
как и ожидалось.sudo npm install -g mocha
достает меня/usr/local/bin/mocha
. Если это не работает должным образом в вашей среде, это может быть ошибка или просто мокко не обновлен для поддержки узла 0.7. *. Что касается вашего предупреждения устаревания,exists
иexistsSync
были перенесены изpath
кfs
в узле 0.7.1.Ответы:
Начиная с npm 5.2.0, в npm добавлена новая команда "npx", которая делает это намного проще, если вы запустите:
Примечание: необязательные аргументы перенаправляются выполняемой команде (в данном случае мокко)
это автоматически выберет исполняемую команду «mocha» из вашего локально установленного mocha (всегда добавляйте ее как зависимость разработчика, чтобы гарантировать, что правильный вариант всегда будет использоваться вами и всеми остальными).
Однако будьте осторожны, если вы не установили mocha, эта команда автоматически загрузит и использует последнюю версию, что отлично подходит для некоторых инструментов (например, скаффолдеров), но может быть не самым рекомендуемым для определенных зависимостей, где вы, возможно, захотите прикрепить к определенной версии.
Вы можете узнать больше о npx здесь
Теперь, если вместо прямого вызова mocha вы хотите определить собственный сценарий npm, псевдоним, который может вызывать другие двоичные файлы npm ...
вы не хотите, чтобы ваши библиотечные тесты терпели неудачу в зависимости от настройки машины (мокко как глобальная, глобальная версия мокко и т. д.), способ использования локального мокко, который работает кросс-платформенно:
npm помещает псевдонимы для всех двоичных файлов в ваших зависимостях в этой специальной папке. Наконец, npm автоматически добавит node_modules / .bin в PATH при запуске сценария npm, поэтому в вашем package.json вы можете просто:
"scripts": { "test": "mocha" }
и вызвать его с помощью
источник
/node_modules/.bin/{module-binary-name}
это место, где npm помещает ярлыки для двоичных файлов в ваши зависимости, вы не должны напрямую ссылаться на файл в источниках зависимости, так как это может сломаться в следующей версии.После дальнейшего чтения и подтверждения от Линуса Дж. Тиля выше, я обнаружил, что просто должен,
./node_modules/.bin
в мойPATH
источник
Для окон:
"scripts": { "start": "nodemon app.js", "test": "mocha" },
затем запустите команду
источник
При установке узловых модулей для мокко я попробовал следующие команды
и при запуске или выполнении теста мокко, который я пытался
но я получал следующую ошибку:
'Мокко' не распознается как внутренняя или внешняя команда
Итак, попробовав все, выяснилось, что просто указать путь к переменным среды в системных переменных как:
C: \ Program Files \ nodejs \
и это сработало :)
источник
npm install --global mocha
Затем
cd
в папку проекта / test и запуститеmocha yourTestFileName.js
Затем добавьте
mocha
в свои скрипты внутриpackage.json
."scripts": { "test": "mocha" },
Затем запустите
npm test
свой терминал.источник