Скажите Mocha использовать файлы CoffeeScript по умолчанию

В настоящее время я пытаюсь настроить тестирование в Mocha для приложения, которое пишу с помощью Zappa.js. До сих пор я следовал этому руководству и конвертировал то, что нужно от JS до Coffeescript.

Однако я немного застрял в попытке запустить тесты. У меня есть Makefile, который сейчас выглядит так:

REPORTER = dot

test:
  @NODE_ENV=test ./node_modules/.bin/mocha \
    --reporter $(REPORTER) \

.PHONY: test

И я настроил свой файл package.json для выполнения таких тестов:

{
  "scripts": {
    "test": "make test"
  }
}

Проблема, которую я обнаружил, заключается в том, что, поскольку я пытаюсь написать свои тесты Mocha с использованием Coffeescript, Mocha не берет ни одного из моих тестов в папке «test /», когда я запускаю «npm test». Я точно знаю, что могу сказать Mocha запускать файлы .coffee, используя следующее в Терминале (который работает):

mocha --compilers coffee:coffee-script

Я хочу знать, как мне сказать Mocha использовать файлы Coffeescript по умолчанию?


person Kyri Elia    schedule 04.05.2013    source источник


Ответы (3)


Хорошо, мне удалось найти способ решить свой вопрос, поэтому я подумал, что поделюсь, если это понадобится кому-то еще.

ПРИМЕЧАНИЕ. Для CoffeeScript 1.7+ --require coffee-script необходимо изменить на --require coffee-script / register

Решение состоит в том, чтобы вместо этого создать Cakefile, а не Makefile, который выглядит так:

#Cakefile

{exec} = require "child_process"

REPORTER = "min"

task "test", "run tests", ->
  exec "NODE_ENV=test
    ./node_modules/.bin/mocha
    --compilers coffee:coffee-script
    --reporter #{REPORTER}
    --require coffee-script
    --require test/test_helper.coffee
    --colors
    ", (err, output) ->
      throw err if err
      console.log output

А затем измените package.json на это:

#package.json

{
  "scripts": {
    "test": "cake test"
  }
}

Наконец, мне пришлось установить Coffeescript в проект, используя:

npm install coffee-script

И создайте файл test / test_helper.coffee, содержащий глобальные объявления тестов.

person Kyri Elia    schedule 04.05.2013
comment
Если вы хотите, чтобы участники могли выполнять ваши тесты, сделайте npm install coffee-script --save-dev - person Wil Moore III; 16.08.2013
comment
Для CoffeeScript 1.7+ --require coffee-script необходимо изменить на --require coffee-script/register stackoverflow.com/a/9943255/167815 - person Dave James Miller; 18.05.2014

Я настраиваю тесты мокко напрямую с помощью npm

package.json (только скрипты)

"scripts": {
  "start": "node app.js",
  "start-watch": "./node_modules/.bin/node-dev app.js",
  "test": "NODE_ENV=test ./node_modules/.bin/mocha --require coffee-script --compilers coffee:coffee-script --recursive ./test",
  "test-watch": "NODE_ENV=test ./node_modules/.bin/mocha --require coffee-script --compilers coffee:coffee-script --recursive ./test --watch"
}

а затем выполните тестовые файлы coffeescript, запустив

npm test

or

npm run-script test-watch
person Stuart McConnell    schedule 15.10.2013
comment
Это работает при использовании --require coffee-script/register - person meridius; 09.10.2016

Ниже представлены рабочие Makefile и package.json.

Makefile:

REPORTER = dot
COMPILER = coffee:coffee-script

node_modules:
    @npm install

test: node_modules
    @./node_modules/.bin/mocha --reporter $(REPORTER) --compilers $(COMPILER)

clean: node_modules
    @$(RM) -r node_modules

.PHONY: clean test

package.json (только devDependencies):

  "devDependencies": {
    "coffee-script": "~1.6.3",
    "chai": "~1.7.2",
    "mocha": "~1.12.0"
  }

Затем сделайте:

% make clean
% make test
person Wil Moore III    schedule 16.08.2013