如何在package.json中配置Mocha命令检测任意深度的测试文件?
解决Mocha无法检测深层目录测试文件的问题
遇到这种深层目录测试文件找不到的情况,主要是shell对glob模式的解析或者Mocha默认遍历规则的限制导致的,你可以试试这两种修改方式:
方法1:添加--recursive参数
直接给Mocha加上递归遍历的参数,配合原有的匹配模式就能覆盖所有层级:
"test": "mocha --require babel-core/register --watch-extensions js --recursive **/*.test.js"
--recursive会让Mocha自动遍历当前目录下的所有子目录,不管层级有多深,再结合**/*.test.js筛选出测试文件,完美适配你多深层结构的需求。
方法2:明确指定根目录的glob路径
有些shell环境(比如Windows默认的CMD)对裸写的**支持不太友好,加上./明确从项目根目录开始递归查找:
"test": "mocha --require babel-core/register --watch-extensions js ./**/*.test.js"
这种方式不需要额外参数,直接通过更精确的glob模式让Mocha定位到所有深度的*.test.js文件。
小提示
如果你的Mocha版本比较老,可能对新的glob模式支持有限,建议升级到最新稳定版,能避免不少路径匹配的坑。
内容的提问来源于stack exchange,提问作者theJuls
相关产品推荐
相关产品推荐

