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

我在Windows 7上使用node.js v0.10.0和mocha v1.8.2和npm v1.2.14。 我只是想让摩卡使用路径测试/单元来找到我的测试, 在花了很长时间并尝试了几件事之后,

使用"test/unit/*.js"选项在windows上不起作用。 windows shell不像unixen那样展开通配符是有原因的。

但是使用“test/unit”也可以,没有文件模式。 如。“mocha test/unit”会运行test/unit文件夹下的所有文件。

这仍然只运行一个文件夹文件作为测试,但您可以传递多个目录名称作为参数。

此外,要运行单个测试文件,您可以指定完整的路径和文件名。 如。“摩卡测试/单位/ mytest1.js”

我实际上是在包里安装的。NPM Json "脚本":{ “测试”:“摩卡测试/单元” },

所以'npm test'运行我的单元测试。

这样做的好方法是在包中添加一个“test”npm脚本。Json,使用正确的参数调用mocha。这边您的包裹。Json还描述了测试结构。它还避免了其他答案中的所有这些跨平台问题(双引号vs单引号,“查找”等)。

让mocha运行"test"目录下的所有js文件:

"scripts": {
    "start": "node ./bin/www", -- not required for tests, just here for context
    "test": "mocha test/**/*.js"
  },

然后,要只运行烟雾测试,请调用:

npm test

你可以通过这种方式标准化所有项目中所有测试的运行,这样当一个新的开发人员开始你的项目或其他项目时,他们知道“npm test”将运行测试。这在历史上有很好的先例(例如,Maven也是大多数老式的“make”项目)。当所有项目都有相同的测试命令时,它肯定有助于CI。

类似地,您可能有一个快速“烟雾”测试的子集,您可能希望mocha运行:

"scripts": {
    "test": "mocha test/**/*.js"
    "smoketest": "mocha smoketest/**/*.js"
  },

然后,要只运行烟雾测试,请调用:

npm smoketest

另一种常见的模式是将测试放在与它们测试的源文件相同的目录中,但是将测试文件称为*.spec.js。例如:src/foo/foo.js通过src/foo/foo.spec.js进行测试。

按照约定运行所有命名为*.spec.js的测试:

  "scripts": {
    "test": "mocha **/*.spec.js"
  },

然后运行所有测试调用:

npm test

看到这里的模式了吗?好。:)一致性打败了村。

现在一天(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

用这个:

mocha server-test

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

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

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