Mocha supports a variety of configuration options. A typical approach configuring Mocha is the command line. Using Mocha from the CLI or via NPM scripts lets you pass down the desired options.
Mocha supports a dedicated configuration file besides the command line flags. Until Mocha v7, the supported configuration file was mocha.opts
. Starting in Mocha v8, you must transition to a mocharc[.js|.json|.yaml]
configuration file.
This tutorial shows you how to migrate from a mocha.opts
to a .mocharc.js
file.
Mocha Series Overview
- Global Setup and Teardown (before/after)
- Migrating From mocha.opts to .mocharc.js Configuration File
The Old “mocha.opts” Configuration
The mocha.opts
file until Mocha v7 was a list of command-line options. A sample mocha.opts
file we’re using in one of our projects looks like this:
mocha.opts
--exit
--bail
--recursive
--slow 1000
--file ./test/pretest.js
Let’s migrate this file to the new configuration file format.
Translating to a Mocha Configuration File
Moving to a new configuration file is pretty straightforward. You must translate the individual configurations to either a JavaScript object, a JSON object, or to YAML options.
We’ll only look at Mocha’s JavaScript configuration object in this example. Please go ahead and translate it to your used format if you’re not using JavaScript.
Translating the Mocha configurations from above results in the following .mocharc.js
file usable in Mocha v8 (and later):
.mocharc.js
'use strict'
module.exports = {
exit: true,
bail: true,
slow: 1000,
recursive: true,
file: ['./test/pretest.js']
}
You can basically follow some simple rules here:
- each option that is only a flag translates to a boolean value
- each option having a value assigned translates to the value
- each option allowing more than one value translates to an array of values
That’s it!
Other Configuration Formats
Mocha supports configuration files in JSON and YAML format. If that’s your preference, choose one of those file formats.
You may also use a mocha
property in your package.json
to configure Mocha. When starting the test run, Mocha checks possible locations for a configuration and merges your custom configuration over the default one.
Enjoy testing!