Ошибка при запуске теста 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.