简体   繁体   中英

Mocha not recognizing CoffeeScript/JS test when adding programatically

I am trying to add mocha to an existing project. I have the following test just for putting things together...

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));

Options...

--compilers coffee:coffee-script/register

Then I run mocha --opts ./mocha.opts src/test/coffee/test/test.coffee and I see

1 passing (6ms)

Now I try to create a runner file to handle

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();

And run mocha --opts ./mocha.opts src/test/mocha/mocha-runner.coffee I get

0 passing (0ms)

So why is it not finding the test?

Update

I have also converted everything over to JS to ensure it wasn't an issue with CS and I am getting the same thing...

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");

It runs like this...

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


Done


  0 passing (0ms)

Update 2

Ok so it appears I should be using node and not mocha for running it. This presents a problem as the .js version works but the .coffee version throws an error...

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

Because node cannot recognize the coffeescript

I am going to post this up here as an answer, although I don't like it...

mocha-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();

I would like to avoid the multiple files but for now it looks like I am stuck :-/. That is why I am going to wait to accept my answer.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM