Mocha,如何忽略node_modules文件夹

时间:2016-11-22 06:12:05

标签: node.js npm mocha

我正在尝试创建一个测试环境,所有源文件都与其测试代码并排。这是因为很容易跟踪哪个文件没有测试代码。以下是运行构建

后我的目录示例
built/api/a.js
built/api/a-test.js  
built/api/b.js
built/api/b-test.js
built/index.js
built/index-test.js
built/node_modules/...
built/package.json  
src/api/a.js
src/api/a-test.js
src/api/b.js
src/api/b-test.js
src/index.js
src/index-test.js
src/package.json
package.json

我将通过run' npm test'来运行我的测试,下面是我的package.json内容:

{ "name": "sample", 
  "scripts": {
    "build": "babel ./src -d ./built && cd built && npm install",
    "test": "mocha built/**/*-test.js"
  },
  "devDependencies": {
    "babel-cli": "^6.18.0",
    "babel-core": "^6.18.0",
    "mocha": "^3.1.2"
  }
}

我的问题是如何跳过node_modules文件夹中的那些文件,并且名称以-test.js结尾

2 个答案:

答案 0 :(得分:4)

派对有点晚了(13个月以上!?),但是......

摩卡并不支持开箱即用。你需要使用你的glob-fu并获得一些幻想。在命令行上运行这样的东西应该可以解决问题:

mocha './built/{,!(node_modules)/**}/*-test.js'

glob模式{,!(node_modules)/**}

  

获取当前目录中的条目,或当前目录的任何子目录中的条目,无论深度如何,除了./build/node_modules中的条目。

请注意,OS X或Linux boxen上的单引号基本上是 required 。保留为裸字(未引用),或引用双引号,您将获得shell globbing而不是glob()使用的内部mocha,因此您不太可能获得结果你可能会期待...除非你有一个非典型的外壳。

Windows shell仅支持双引号...并且它没有命令行通配,因此在Windows上,您可能希望保留此引号(但不要错误,错误, 引用我的意思。)

更好的,更加平台无关的方法是将glob模式放在test/mocha.opts文件中,因此:

--require ./test/setup.js
--colors
--inline-diffs
./built/{,!(node_modules)/**}/*-test.js

干杯!

答案 1 :(得分:0)

mocha '**/*-test.js' --ignore 'built/node_modules/**/*'