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

什么是.spec.ts文件?为何TypeScript测试普遍使用该文件后缀?

关于TypeScript项目.spec.ts测试文件后缀的常见疑问解答

.spec.ts是目前TypeScript生态约定俗成的测试文件命名规范,普及度很高的原因主要有3个:

  • 约定认知统一
    spec是*specification(规范)*的缩写,这个命名习惯源自早期行为驱动开发(BDD)的工程实践:测试文件本质是对源代码功能预期的可执行规范,每一条测试用例对应一条功能必须满足的规则。所有开发者看到.spec.ts后缀不需要打开文件,就能直接判断这是对应业务代码的测试文件,不会和普通业务逻辑文件混淆。
  • 工具链默认适配
    主流TS生态工具都默认适配这个后缀规则,不需要额外修改配置就能正常工作:
    • Jest、Vitest、Mocha、Cypress等测试框架的默认配置,都会自动扫描所有.spec.ts后缀的文件作为测试入口,直接执行测试命令就能跑全量用例。
    • Vite、Rollup、Webpack等打包工具的生产构建规则,默认会过滤掉.spec.ts后缀的文件,避免测试代码被打包到生产环境,减少产物体积同时降低线上故障风险。
  • 文件结构辨识度高
    目前TS项目的通用文件组织逻辑有两种:测试文件和对应业务代码同目录存放(比如src/utils/format.ts旁边放src/utils/format.spec.ts),或者测试文件集中存放在test目录下,保持和源码完全一致的目录结构。.spec.ts后缀可以让开发者快速区分同功能的业务文件和测试文件,排查问题、补充用例时都能快速定位目标文件。

另外补充一个常见疑问:部分项目也会使用.test.ts作为测试后缀,两者功能层面没有任何差异,只是命名侧重不同:.spec更强调测试作为功能规范的属性,.test更强调测试作为功能验证动作的属性,目前两类后缀都被所有主流工具支持,只是.spec.ts在TS项目中的普及度更高。

内容的提问来源于stack exchange,提问作者Patrick Collins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:03