3

我对在 Mocha 控制下运行的 coffeescript 编写的 node js express 应用程序进行了几个测试。不幸的是 mocha 运行了我所有的测试两次,因为在同一个目录中我有 .coffee 和 .js 文件。.js 文件由我的编辑器与 .map 文件一起自动生成。如果我需要调试某些东西,这非常方便。

如何过滤仅从目录执行的 .coffee 或 .js 而不是两者?

4

2 回答 2

3

在您的 package.json 中,创建如下条目:

  "scripts": {
    "test": "npm run test-coffee",
    "test-js": "mocha -R spec test/*.js",
    "test-coffee": "mocha -R spec test/*.coffee"
  }

现在您可以运行npm testnpm run test-jsnpm run test-coffee. 如果您在子目录中有测试,您将希望使用 find 命令只运行您感兴趣的子测试。

于 2013-08-08T01:02:23.580 回答
0

Mocha 默认运行带有 pattern: 的文件,test/*.{js,coffee}其中包括 coffee 和 js 文件。在您的情况下,它将找到每个测试的咖啡和 js 文件,因此您的测试运行两次。

您可能希望明确设置文件模式,例如:

mocha -R spec "test/*.js"

如果您在子目录中有测试,则可以在您的模式中使用 globstar (**),如下所示:

mocha -R spec "test/**/*.js"

注意使用双引号。如果省略双引号,它们将由 shell 解释,并且它可能无法匹配子目录中的文件。使用双引号将模式传递给 mocha,mocha 会正确处理它。

于 2013-11-11T08:55:07.570 回答