我在mocha控件下运行的coffeescript中编写了节点js express应用程序的几个测试。 不幸的是,mocha运行我的所有测试两次,因为我在jave .coffee和.js文件的同一目录中。 .js文件由我的编辑器自动与.map文件一起生成。如果我需要调试一些东西,这非常方便。
如何过滤只有.coffee或.js是从目录执行而不是两者都执行?
答案 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 test
,npm run test-js
或npm 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正确处理它。