无法使用 CoffeeScript 运行 Mocha [英] Cannot run Mocha with CoffeeScript
问题描述
Makefile - 内容:
Makefile - Content:
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
项目根目录有一个test文件夹,里面有两个文件:mocha.opts和example.coffee
The project root directory has a test folder with two files: mocha.opts and example.coffee
example.coffee - 内容
example.coffee - Content
describe "feature", ->
it "should add two numbers", ->
(2+2).should.equal 4
在运行make test
,得到如下错误:
On running make test
, getting the following error:
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)
使用 js 文件运行 Mocha 成功,但无法使用 CoffeeScript 运行.我真的很想 - 为了代码简洁.
Running Mocha with js files succeeds, but cannot get it to run with CoffeeScript. I really want to - for code brevity.
请指导.
推荐答案
从 Mocha 1.0 开始:
As of Mocha 1.0:
开箱即用不再支持咖啡脚本.可以通过映射文件扩展名(与 --watch 一起使用)和模块名称来使用 CS 和类似的转译器.例如 --compilers coffee:coffee-script
和 CoffeeScript 1.6- 或 --compilers coffee:coffee-script/register
和 CoffeeScript 1.7+.
coffee-script is no longer supported out of the box. CS and similar transpilers may be used by mapping the file extensions (for use with --watch) and the module name. For example
--compilers coffee:coffee-script
with CoffeeScript 1.6- or--compilers coffee:coffee-script/register
with CoffeeScript 1.7+.
(引用 http://visionmedia.github.io/mocha/#compilers-option) 所以,你需要添加一行
(Quoting http://visionmedia.github.io/mocha/#compilers-option) So, you need to add the line
--compilers coffee:coffee-script/register
或者,对于 CS <= 1.6.x,
or, for CS <= 1.6.x,
--compilers coffee:coffee-script
到您的 mocha.opts
文件.
这篇关于无法使用 CoffeeScript 运行 Mocha的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!