Подтвердить что ты не робот

Не удается запустить Mocha с CoffeeScript

Makefile - Содержание:

REPORTER = dot

all: build

build:
    @./node_modules/coffee-script/bin/coffee \
        -c \
        -o lib src

clean:
    rm -rf lib
    mkdir lib

watch:
    @./node_modules/coffee-script/bin/coffee \
        -o lib \
        -cw src

test:
    @./node_modules/mocha/bin/mocha \
        --reporter $(REPORTER) \
        test/*.coffee

.PHONY: build clean watch test

В корневом каталоге проекта есть тестовая папка с двумя файлами: mocha.opts и example.coffee

example.coffee - Содержание

describe "feature", ->
   it "should add two numbers", ->
       (2+2).should.equal 4

При запуске make test, получив следующую ошибку:

cribe 'feature',
      ^^^^^^^^^

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
SyntaxError: Unexpected string
    at Module._compile (module.js:429:25)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at /home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:261:27
    at Array.forEach (native)
    at load (/home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:258:9)
    at Object.<anonymous> (/home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:249:1)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)

Запуск Mocha с js файлами преуспевает, но не может заставить его работать с CoffeeScript. Я очень хочу - для краткости кода.

Пожалуйста, направляйте.

4b9b3361

Ответ 1

От Mocha 1.0:

coffee- script больше не поддерживается из коробки. CS и аналогичные транспилеры могут использоваться путем сопоставления расширений файлов (для использования с --watch) и имени модуля. Например --compilers coffee:coffee-script с CoffeeScript 1.6- или --compilers coffee:coffee-script/register с CoffeeScript 1.7 +.

(Цитата http://visionmedia.github.io/mocha/#compilers-option) Итак, вам нужно добавить строку

--compilers coffee:coffee-script/register

или, для CS <= 1,6.x,

--compilers coffee:coffee-script

в ваш mocha.opts файл.

Ответ 2

Начиная с CoffeeScript 1.7, опция должна быть:

--compilers coffee:coffee-script/register

issue был отправлен на сайт Mocha github.

Ответ 3

Мне потребовалось два изменения для моих мокковых аргументов, чтобы заставить это работать:

--require coffee-script/register
--compilers coffee:coffee-script/register