Mocha by design runs tests in series. Often this is not efficient and you might want to run some or all of the tests in parallel.
Mocha uses a wrapper executable under the hood, which runs the “real” _mocha executable. The _mocha executable is run via
require('child_process').spawn. See bin/mocha. This makes it easy to run tests in parallel, in their own child processes with their own environment. We had success in two scenarios: i). inspecting the content of the files for the presence of a function and choosing whether to run them in parallel or series and ii). running a selenium suite multiple times with different environment variables specifying different browser configurations.
Feel free to use the script below to make your own runner. It is heavily inspired by bin/mocha.
Originally published at https://msyea.github.io on June 5, 2019.