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

运行Mocha测试时修改TypeScript默认配置的include选项

解决ts-node/esm运行Mocha测试时的文件忽略问题

你的问题核心是:生产环境的tsconfig.json仅将Source目录纳入编译范围,但Mocha运行测试时需要处理Test目录的文件,导致ts-node因为配置限制忽略了测试文件,触发报错。以下是针对该场景的具体解决方法:

方案1:创建测试专用的TypeScript配置文件

这种方式能精准区分生产和测试的编译范围,避免影响原配置:

  1. 在项目根目录新建tsconfig.test.json,继承原配置并扩展include范围:
{
  "extends": "./tsconfig.json",
  "include": ["Source/**/*", "Test/**/*"]
}
  1. 修改Mocha运行命令,指定使用这个测试配置:
mocha -r ts-node/esm --ts-node-project ./tsconfig.test.json Test/**/*.ts

方案2:临时跳过ts-node的忽略规则(快速应急)

如果不想新增配置文件,可以通过skipIgnore参数强制ts-node处理测试文件,但注意这会让ts-node处理所有原本被忽略的文件,适合临时调试:

mocha -r ts-node/esm --ts-node-options='{"skipIgnore": true}' Test/**/*.ts

补充说明

解决当前忽略问题后,你提到的文件扩展名错误可以进一步排查:如果项目启用了ES模块(package.json中type: "module"),测试文件建议使用.mts扩展名,或者确保tsconfig的moduleResolution、module等配置与ES模块模式匹配。

内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:15:31