摩卡运行测试两次

时间:2013-08-07 11:45:36

标签: javascript coffeescript tdd mocha

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

如何过滤只有.coffee或.js是从目录执行而不是两者都执行?

2 个答案:

答案 0 :(得分: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命令仅运行您感兴趣的子测试。

答案 1 :(得分:0)

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

您可能需要明确设置文件模式,例如:

mocha -R spec "test/*.js"

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

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

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