how to pass compiler options to mocha

coffeescript, mocha.js

Solution

The --compiler option doesn't support this, but you can write a script which activates the compiler with your options, then use mocha's --require option to activate your registration script. For example, create a file at the root of the project called babelhook.js:

// This file is required in mocha.opts
// The only purpose of this file is to ensure
// the babel transpiler is activated prior to any
// test code, and using the same babel options

require("babel-register")({
  experimental: true
});

Then add this to mocha.opts:

--require babelhook

And that's it. Mocha will require babelhook.js before any tests.

Problem

I run a mocha command to run my tests ``` $ ./node_modules/.bin/mocha --compilers coffee:coffee-script -R spec ``` I wish to pass additional options to the coffee-script compiler (--bare to avoid the outer closure that is introduced when compiling .coffee to .js). Is there a way to do this? I tried ``` $ ./node_modules/.bin/mocha --compilers coffee:coffee-script --bare -R spec ``` but that doesn't look right. It also failed saying that --bare is not a valid option for mocha. ``` error: unknown option `--bare' ```

Original source