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


当前回答

用这个:

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运行。

如果你使用的是nodejs,在你的包中。脚本下的Json

对于全局(-g)安装:"test": "mocha server-test"或"test": "mocha server-test/**/*.js"用于子文档 项目安装:“test”:“node_modules/mocha/bin/mocha server-test”或“test”:“node_modules/mocha/bin/mocha server-test/**/*.js”

然后像npm测试一样正常运行你的测试

不要使用-g或——grep选项,该模式操作的是it()内部的测试名称,而不是文件系统。目前的文件在这方面是误导和/或完全错误的。为了将整个命令限制在文件系统的一部分,您可以将一个模式作为最后一个参数(它不是一个标志)。

例如,这个命令会将你的报表设置为spec,但只会测试server-test目录下的js文件:

mocha --reporter spec server-test/*.js

这个命令的作用和上面一样,而且它只会运行测试用例,其中测试的it()字符串/定义以"Fnord:"开头:

mocha --reporter spec --grep "Fnord:" server-test/*.js

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

我刚刚遇到了这个问题,并通过删除——recursive选项(我已经设置了)并使用上面建议的相同结构来解决它:

mochify “test/unit/**/*.js”

这为我运行了/test/unit/下所有目录下的所有测试,而忽略了/test/下的其他目录