Mocha和Typescript并递归加载

Ale*_*hin 6 mocha.js typescript typescript-typings typescript2.0

使用此脚本:

"test": "./node_modules/mocha/bin/mocha --recursive --require ts-node/register ./test/**/*.spec.ts --opts ./test/mocha.opts",
Run Code Online (Sandbox Code Playgroud)

我试图在树中加载一些测试文件:

.
??? controllers
?   ??? admin
?   ?   ??? users.spec.ts
?   ??? authentications.spec.ts
Run Code Online (Sandbox Code Playgroud)

但是,users.spec.ts不会加载测试文件,但是会加载authentications.spec.ts

我的mocha.opts文件如下所示:

--timeout 5000
Run Code Online (Sandbox Code Playgroud)

我也尝试删除该--recursive标志,只是有一个问题,但它不起作用。

我不知道问题出在哪里ts-node还是在mocha

有任何想法吗?

Joh*_*ohn 5

看起来你也在这里问了这个问题,并得到了一个很好的答案:引用 glob 参数,以便它由 mocha 扩展(递归地),而不是由 shell 扩展(非递归地):

"test": "mocha --require ts-node/register 'test/**/*.spec.ts' --opts ./test/mocha.opts"
Run Code Online (Sandbox Code Playgroud)


Myk*_*lis 3

看来这里确实存在一个错误,无论是摩卡的处理还是与我不知道的--recursive某些交互。ts-node

您可以通过告诉 mocha 使用如下命令专门查找嵌套更深的文件夹来解决此问题:

mocha --recursive --require ts-node/register ./test/**/*.spec.ts ./test/**/**/*.spec.ts --opts ./test/mocha.opts
Run Code Online (Sandbox Code Playgroud)

例如,告诉它专门查找子目录 ( /**/) 和孙目录 ( /**/**/) 。