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の2つのファイルを含むテストフォルダーがあります。
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)
JsファイルでMochaを実行すると成功しますが、CoffeeScriptで実行することはできません。私は本当にしたい-コードの簡潔さのため。
ご案内ください。
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
ファイル。
CoffeeScript 1.7以降、オプションは次のようになります。
--compilers coffee:coffee-script/register
issue がMochaのgithubサイトに提出されました。
どうやら、2018年4月に行われたモカの変更により、--compilers
オプションが(ソフトに)非推奨になりました。コマンドラインで次のようになります。
(ノード:27864)DeprecationWarning: "--compilers"は、Mochaの将来のバージョンで削除される予定です。詳細は https://git.io/vdcSr を参照してください
リンクが言うように、これは--compilers
を使用せず、この新しい(簡略化された)mocha.opts
オプションを使用するだけで簡単に修正できます。
--require coffeescript/register
test/*.coffee
最後の行は、Mochaが*.coffee
ファイルをテストファイルとして使用することを理解するために必要です。これは--require
オプションではカバーされていないようです。
mocha --require coffeescript/register
ソース: https://github.com/mochajs/mocha/wiki/compilers-deprecation
これを機能させるには、モカ引数に2つの変更が必要でした。
--require coffee-script/register
--compilers coffee:coffee-script/register