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.