如何配置Mocha递归查找项目中所有测试文件?
如何配置Mocha递归查找所有测试文件?
我来帮你搞定这个问题!要让Mocha递归扫描项目里所有的测试文件,有几种简单直接的方法,看你偏好哪种:
方法1:直接修改npm scripts命令
你只需要在package.json的test脚本里给Mocha加上递归匹配的通配符即可。假设你的测试文件遵循常见规范,以.test.js或.spec.js结尾,可以改成这样:{ "scripts": { "test": "mocha **/*.test.js" } }这里的
**/表示递归匹配所有子目录,*.test.js则精准定位所有以.test.js结尾的测试文件。如果你的测试文件命名规则不同(比如直接叫test.js),可以调整为**/*test.js,不过还是推荐统一后缀名,避免误匹配非测试文件。要是你用的是Windows系统,可能需要给通配符加引号避免解析问题:
{ "scripts": { "test": "mocha \"**/*.test.js\"" } }方法2:使用Mocha配置文件(更推荐)
不想把命令写得冗长,或者需要更复杂的测试规则?Mocha支持读取专门的配置文件(比如.mocharc.json、.mocharc.js)。在项目根目录创建.mocharc.json,内容如下:{ "spec": ["**/*.test.js"], "exclude": ["node_modules/**"] }这样你的npm scripts可以保持原来的
"test": "mocha",Mocha会自动读取配置,递归查找符合规则的测试文件,同时排除node_modules目录(避免扫描无关文件)。额外实用提示
- 不确定配置是否正确?可以加上
--list参数预览匹配结果:mocha **/*.test.js --list,会列出所有找到的测试文件,方便你验证。 - Mocha v6及以后版本默认不会递归查找,必须明确指定通配符或配置规则;老版本可能默认递归,但明确配置更稳妥。
- 不确定配置是否正确?可以加上
内容的提问来源于stack exchange,提问作者Yair Nevet
相关产品推荐
相关产品推荐

