I'd like to set some defaults for mocha without having to type them each time. Does mocha look for a config file / dotfile anywhere, as jshint looks for .jshintrc
and npm looks for package.json
?
-
1The accepted answer is now deprecated. I suggest accepting the new one (stackoverflow.com/a/54804446/1740079) to prevent more people from using the old approach.– ichigolasCommented Jun 11, 2020 at 16:58
3 Answers
Yes. You can create a file ./test/mocha.opts
and in the file you can specify --no-colors
.
See mocha.opts on Mocha Doc for more information.
-
12
Mocha recommends mocha --config=.mocharc.json
.
There are new formats too, like yaml. See some examples.
Old answer:
The default is ./test/mocha.opts
. You can pass a custom path with the --opts
parameter :
mocha --opts ./mocha.opts
Useful in case you don’t store your tests in test/
folder, but next to code files, for example.
Any name and extension seems to work, so you can even do mocha --opts .mocharc
if you want it to go well with .jshintrc
, .babelrc
and the like.
-
2This is (or at least was), a very obscure function. I had given up hope for such a thing long ago, and thank you for pointing out it's possible now. :)– DBrownCommented Aug 12, 2016 at 1:40
-
7THANK YOU! Tests should really be next to files. Locality is important! Commented Sep 7, 2016 at 17:47
-
1Is it possible for the contents of the file to be JSON? Commented Sep 28, 2017 at 15:06
-
It doesn’t seem like so. The CLI splits the content by spaces and then parses it with
commander
module.commander
’s parser expects a string array.mocha
source: github.com/nishigori/mocha/blob/… -commander
source: github.com/tj/commander.js/blob/… Commented Sep 29, 2017 at 16:50 -
1You could launch
mocha
in a script and pass your JSON file contents. See: github.com/mochajs/mocha/wiki/… Commented Sep 29, 2017 at 16:54
In mocha 6+ the mocha.opts
was changed to legacy
and the new place to define your configuration is a .mocharc
file that can have different formats (JSON, YAML, JS) as described in the docs or a JSON config added to the package.json
using mocha
key.
Specifying your own path to mocha config is done using --config <file>
but mocha uses any .mocharc.*
file as default in order described in the docs (JS, YAML, YML, JSON) and also automatically uses mocha
key from package.json
with lower priority than a given config file.
-
2An example .mocharc.js file is here: github.com/mochajs/mocha/blob/master/example/config/.mocharc.js (and there are other formats in that directory as well).– Peter WCommented Jul 25, 2019 at 2:50