摩卡如何recursionsearch我的`src`文件夹的特定文件名模式?
在我的npm包中,我想模仿Meteor的模式:源文件(名为client.js
)有一个testing文件(名字为client.tests.js
),它位于src/
文件夹中。 testing使用npm test
命令运行。
我正在使用文档到't'。 我不想在我的包testing命令中使用find
。
-
我明白,摩卡可以recursion地执行testing:
摩卡 – recursion
-
我明白摩卡可以使用
--recursive
标志在特定的子文件夹中执行testing:摩卡src – recursion
-
我也明白,我可以通过传递
*.tests.js
指定一个glob来过滤文件:摩卡* .tests.js
但是,我想要所有三个。 我想摩卡只testingsrc文件夹中以tests.js
结尾的文件,recursion检查子目录。
mocha --recursive *.tests.js // See the files? $ > ll ./src/app/ total 168 -rw-r--r-- ... client.js -rw-r--r-- ... client.tests.js // Option A $ > mocha --recursive *.tests.js Warning: Could not find any test files matching pattern: *.tests.js No test files found // Option B $ > mocha *.tests.js --recursive Warning: Could not find any test files matching pattern: *.tests.js No test files found. // Option C $ > mocha --recursive src/app/*.tests.js 3 passing (130ms) 3 failing
所以…
- 为什么摩卡没有拿起子文件夹中的
*.tests.js
文件? - 为什么如果我指定文件的完整path,它是否工作?
- 我如何使其按需要工作?
– --recursive
标志是为了在目录上运行。 如果你要传递一个与目录相匹配的glob,那么这些目录将被recursion地检查,但是如果你传递一个匹配文件的glob,就像你正在做的那样,那么--recursive
是无效的。 我build议不要使用 – glob的recursion,因为globs已经有能力在子目录中recursion地查看。 你可以这样做:
mocha 'src/app/**/*.tests.js'
这将匹配在src/app
recursion匹配*.tests.js
所有文件。 请注意我是如何在模式中使用单引号的。 这是引用的模式,以便它原样传递给摩卡的globbing代码。 否则,你的shell可能会解释它。 一些shell根据选项将把**
转换成*
,你不会得到你想要的结果。