Ошибка при запуске теста Mocha в узлеJS

Я пытаюсь запустить Mocha в nodejs и expressjs. Мой тест следующий:

assert = require 'assert'
request = require 'request'
app = require '../../server'

describe "authentication", ->
 describe "GET /login ", ->
 body = null
 before (done) ->
 options = 
 uri: "http://localhost:3000/login"
 request options, (err, response, _body) ->
 body = _body
 done()
 it "has user field", ->
 assert.ok /user/.test(body)
 # assert.match body, /user/

Я добавил кофе-скрипт в качестве зависимости в файле server.js:

require('coffee-script');

var express = require('express');
var http = require('http');
var path = require('path');

var app = model.exports = express();

И у меня есть вспомогательный файл _helper.js:

require('coffee-script')

Я запустил команду:

mocha test/_helper.js test\apps\authentication-test.coffee

который дает следующую ошибку:

(exports, require, module, __filename, __dirname) { assert = require 'assert'

SyntaxError: Unexpected string
 at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at C:\Program Files\nodejs\node_modules\mocha\lib\mocha.js:172:27
at Array.forEach (native)
at Mocha.loadFiles (C:\Program Files\nodejs\node_modules\mocha\lib\mocha.js:16
9:14)
at Mocha.run (C:\Program Files\nodejs\node_modules\mocha\lib\mocha.js:356:31)
at Object.<anonymous> (C:\Program Files\nodejs\node_modules\mocha\bin\_mocha:3
 59:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
</anonymous>

Кто-нибудь видит то, что мне не хватает?

3 ответа

Если вы используете CoffeeScript 1.7, вам нужно будет использовать модуль coffee-script/register чтобы он мог требовать и компилировать файлы.coffee на лету (см. Журнал изменений). Попробуйте запустить Mocha с помощью:

mocha --compilers coffee:coffee-script/register

Или измените файл помощника Mocha:

require('coffee-script/register')


Мне нужно было два изменения, чтобы заставить CoffeeScript работать с Mocha:

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


Mocha не проверяет файлы Coffeescript по умолчанию. Вы должны указать опцию компилятора:

mocha --compilers coffee:coffee-script

или добавить

--compilers coffee:coffee-script

в файле mocha.opts

licensed under cc by-sa 3.0 with attribution.