我正在尝试创建一个测试环境,所有源文件都与其测试代码并排。这是因为很容易跟踪哪个文件没有测试代码。以下是运行构建
后我的目录示例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结尾
答案 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/**/*'