Mocha尝试在默认情况下找到测试文件,我如何指定另一个目录,例如服务器-测试?


当前回答

用这个:

mocha server-test

或者如果你有子目录,使用这个:

mocha "server-test/**/*.js"

注意双引号的使用。如果省略它们,则可能无法在子目录中运行测试。

其他回答

用这个:

mocha server-test

或者如果你有子目录,使用这个:

mocha "server-test/**/*.js"

注意双引号的使用。如果省略它们,则可能无法在子目录中运行测试。

windows中的另一个选项是使用cross-env包,并在package.json中遵循npm脚本

"scripts": {
    "test": "cross-env mocha '*.test.js'"
  },
"devDependencies": {
    "cross-env": "latest",
}

在这种情况下,根文件夹中带有*.test.js模式的所有测试文件将由mocha运行。

编辑:该选项已弃用:https://mochajs.org/#mochaopts


如果仍然希望在命令行上运行mocha,但希望在。/server-tests文件夹而不是。/test文件夹中运行测试,请在。/test/mocha目录下创建一个文件。在文件中只有这个选项:

server-tests

如果你想运行这个文件夹和子目录下的所有内容,把它放到test/mocha.opts中

server-tests
--recursive

摩卡。Opts是通过命令行传入的参数,因此将第一行设置为您想要更改测试的目录,也将从。/test/重定向

运行test_directory下的所有文件,包括与test.js匹配的子目录

find ./parent_test_directory -name '*test.js' | xargs mocha -R spec

或者使用——递归开关

mocha --recursive test_directory/

这里有一种方法,如果你的测试文件夹中有子文件夹。

/test
/test/server-test
/test/other-test

然后在linux中,你可以使用find命令递归地列出所有*.js文件,并将其传递给mocha:

mocha $(find test -name '*.js')