By default, mocha looks for files in the test
directory:
$ tree
.
0 directories, 0 files
$ mocha
Error: cannot resolve path (or pattern) 'test'
If you have files in subdirectories of test
, you’ll need to pass the recursive flag:
$ mocha --recursive
What if you want to specify tests in a different directory?
You can pass the directory as a CLI argument:
$ mocha another/directory
Glob
Now what if you want to match files like test/foo.spec.js
and test/bar.spec.js
?
Easy! Use a glob expression:
$ mocha "./test/*.spec.js"
And if you need to recurse through all nested directories:
$ mocha "./test/**/*.spec.js"
But what if you want to match all files in test
except for exclude.js
?
You’ll need to negate the filename in the pattern:
$ mocha "./test/**/!(exclude).js"
Finally, if you need to ignore node_modules
and match files like baz.spec.js
and qux.spec.js
in the project root:
$ mocha "./{,!(node_modules)/**/}*.spec.js"
For more information on globs, check out glob-primer.