以编程方式添加时,Mocha无法识别CoffeeScript / JS测试

时间:2016-09-26 14:10:45

标签: javascript coffeescript mocha

我正在尝试将mocha添加到现有项目中。我将以下测试放在一起......

assert = require('assert');
describe 'Array', ->
  describe '#indexOf()', ->
    it 'should return -1 when the value is not present', ->
      assert.equal(-1, [1,2,3].indexOf(4));

选项...

--compilers coffee:coffee-script/register

然后我运行mocha --opts ./mocha.opts src/test/coffee/test/test.coffee,我看到了

  

1次传球(6ms)

现在我尝试创建一个跑步者文件来处理

globFlat = require('glob-flat');
Mocha = require('mocha');
mocha = new Mocha();

files = globFlat.sync([
  'src/test/coffee/test/test.coffee'
]);

mocha.addFile file for file in files
mocha.run();

然后运行mocha --opts ./mocha.opts src/test/mocha/mocha-runner.coffee

  

0传递(0ms)

那么为什么没找到测试呢?

更新

我还将所有内容转换为JS,以确保它不是CS的问题,我也得到同样的东西......

require('coffee-script');
var globFlat = require('glob-flat');
var Mocha = require('mocha');
var mocha = new Mocha();

mocha.addFile('src/test/coffee/test/test.js');
runner = mocha.run();
console.log("Done");

它像这样运行......

mocha src/test/mocha/mocha-runner.js


Done


  0 passing (0ms)

更新2

好的,看来我应该使用node而不是mocha来运行它。这会产生一个问题,因为.js版本可以工作,但.coffee版本会抛出错误...

(function (exports, require, module, __filename, __dirname) { require 'coffee-script';
                                                                      ^^^^^^^^^^^^^^^
SyntaxError: Unexpected string

因为节点无法识别coffeescript

1 个答案:

答案 0 :(得分:0)

我会在这里发布这个作为答案,虽然我不喜欢它......

摩卡wrapper.js

require('coffee-script/register');
require('./mocha-runner.coffee');

mocha-runner.coffee

globFlat = require 'glob-flat';
Mocha = require 'mocha';
mocha = new Mocha();

files = globFlat.sync([
  'src/test/coffee/test/test.coffee'
]);

mocha.addFile file for file in files
mocha.run();

我想避免使用多个文件但是现在看起来我被困了: - /。这就是为什么我要等待接受我的回答。