To tell Mocha to run the tests in another folder rather than run in the default ./test
folder, you could simply change the command and execute
mocha "./spec/**/*.js"
or, if your bash does not support **
run as
mocha --recursive "./spec/*.js"
this means, that you can easily change the VSCode launch script to:
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"./<YOUR_FOLDER_HERE>/**/*.js",
"--ui bdd",
"--timeout 15000",
"--sort",
"--colors",
"--bail",
"-R spec",
"--recursive",
"--exit",
],
"internalConsoleOptions": "openOnSessionStart"
}
remember to change <YOUR_FOLDER_HERE>
with the folder name where you have the tests
if you have tests in your code but they are named, for example as routes.spec.js
you can simply say ./**/*.spec.js
and will find every file in your project that ends with .spec.js
The example above would be the same as having a mocha.opts
file as
# mocha options
--ui bdd
--timeout 15000
--sort
--colors
--bail
-R spec
--require test/prepare
--recursive
--exit
just play with the arguments until you run it as you like ...
BTW, if you're using VSCode, I would strongly recommend a Mocha extension (there are several) as you will not need to run the tests as a launch command and you will have all the tests in your sidebar with the option to debug each one and add breakpoints to your code

as well in your tests

P.S. this project is in GitHub so you can see how everything works, including code coverage if you into looking how that also works :)