我正在尝试将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
答案 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();
我想避免使用多个文件但是现在看起来我被困了: - /。这就是为什么我要等待接受我的回答。