You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:48:24