Sim*_*mon 5 mocha.js node.js npm
我正在尝试创建一个测试环境,所有源文件均与其测试代码并排。这是因为易于跟踪没有测试代码的文件。下面是运行构建后我的目录的示例
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 Code Online (Sandbox Code Playgroud)
我将通过运行“ 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"
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何跳过node_modules文件夹中的文件,它们的名称恰巧以-test.js结尾
参加聚会有点晚(超过13个月!?),但是...
Mocha不支持此功能。您需要使用您的glob-fu并获得一些幻想。在命令行上运行类似这样的命令应该可以解决问题:
mocha './built/{,!(node_modules)/**}/*-test.js'
Run Code Online (Sandbox Code Playgroud)
球形图案{,!(node_modules)/**}
说
不论深度如何,都应在当前目录或当前目录的任何子目录中获取条目,但根目录中的条目除外
./build/node_modules
。
请注意,单引号基本上需要对OS X或Linux Boxen有。左为裸词(不带引号),或引用双引号,你会得到贝通配的内部,而不是glob()
由所使用mocha
,所以你不可能得到你所期望的结果...除非你有一个非典型的壳。
Windows外壳程序只支持双引号...它没有命令行通配符,所以在Windows上,你可能会想离开这个不需要加引号(但不这样做,错了,引用我这句话)。
一种更好的,与平台无关的方法是将glob模式放入test/mocha.opts
文件中,从而:
--require ./test/setup.js
--colors
--inline-diffs
./built/{,!(node_modules)/**}/*-test.js
Run Code Online (Sandbox Code Playgroud)
干杯!
归档时间: |
|
查看次数: |
2763 次 |
最近记录: |