Ответ 1
Спроситель спрашивает:
Когда я запускаю
mocha --harmony
, мои тесты выполняются просто отлично. [...]По какой-либо причине файл
mocha.opts
игнорирует аргумент--harmony
?
Да, mocha.opts
игнорирует аргумент --harmony
. Опция --harmony
не является опцией Mocha, а параметром Node.js. Это опция, которая должна быть передана Node.js до ее запуска. Тем не менее, mocha.opts
читается после Node.js, и даже если Моча смог понять этот вариант, он ничего не сможет с этим поделать.
Но почему это работает в командной строке? Если это не так, когда я запускаю mocha --harmony
, Mocha должен сначала начать, прежде чем разбирать параметр --harmony
? Нет, потому что mocha
есть script, который запускает "настоящую" мокко. Оболочка script обнаруживает --harmony
и гарантирует, что она будет передана в Node.js, когда она запустит "реальный" Mocha.