告诉Mocha默认使用CoffeeScript文件



我目前正试图在Mocha中为我使用Zappa.js编写的应用程序设置测试。到目前为止,我一直在遵循本教程,并将我需要的东西从JS转换为Coffeescript。

然而,我有点卡住试图运行测试。我有一个Makefile,目前看起来像这样:

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

我已经设置好了我的包。Json文件运行测试,像这样:

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

我发现的问题是,因为我也试图使用Coffeescript编写我的Mocha测试,当我运行"npm test"时,Mocha没有在"test/"文件夹中拾取我的任何测试。我知道一个事实,我可以告诉Mocha运行.coffee文件,通过在终端中使用以下命令(可以工作):

mocha --compilers coffee:coffee-script

我想知道的是我如何告诉Mocha默认使用Coffeescript文件?

好的,我设法找到了一个方法来解决我自己的问题,所以我想我应该分享一下,以防其他人需要这个。

注意:对于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
{
  "scripts": {
    "test": "cake test"
  }
}

最后,我必须在项目中安装Coffeescript:

npm install coffee-script

创建一个文件test/test_helper。

我直接使用npm配置mocha测试

包。

"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

npm run-script test-watch

下面是工作的Makefilepackage.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

包。

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

然后做:

% make clean
% make test

相关内容

  • 没有找到相关文章

最新更新