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


当前回答

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


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

server-tests

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

server-tests
--recursive

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

其他回答

正如@jeff-dickey所建议的,在项目的根目录下创建一个名为test的文件夹。在这个文件夹中,创建一个名为mocha.opts的文件。现在,我试图改进Jeff的答案,对我有效的是,我没有指定一个测试文件夹的名称,而是指定了一个模式,通过添加这一行来查找要在我的项目中运行的所有测试:

*/tests/*.js——在mocha.opts中递归

如果你想指定查找测试的确切文件夹,我做了这样的事情:

shared/tests/*.js --recursive
server/tests/graph/*.js --recursive

我希望这能帮助那些需要比其他答案更多的人

对于更改测试目录,这似乎不是任何“简单”的支持。 然而,也许你应该看看这个问题,相对于你的问题。

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

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

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

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

现在一天(2020年),你可以使用mocha配置文件来处理这个问题:

步骤1:在应用程序的根位置创建.mocharc.js文件

步骤2:在mocha配置文件中添加以下代码:

'use strict';

module.exports = {
  spec: 'src/app/**/*.test.js'
};

有关配置文件中的更多选项,请参阅此链接:https://github.com/mochajs/mocha/blob/master/example/config/.mocharc.js

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


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

server-tests

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

server-tests
--recursive

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