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

Jasmine无法找到单元测试提示No specs found如何排查解决?

问题场景

项目相关信息如下:

  • 项目文件夹结构已通过截图展示
  • jasmine.json配置文件内容:
{
    "spec_dir": "dist/tests",
    "spec_files": ["**/*[sS]pec.js"],
    "helpers": ["helpers/**/*.js"],
    "stopSpecOnExpectationFailure": false,
    "random": false
} 
  • 被测文件index.ts代码:
const myFunc = (num: number): number => {
  return num * num;
};

export default myFunc;
  • 测试文件indexSpec.ts代码:
import myFunc from '../index';

it('expect myFunc(5) to equal 25', () => {
  expect(myFunc(5)).toEqual(25);
});

运行测试后得到输出:

No specs found
Finished in 0.007 seconds
Incomplete: No specs found

问题原因

核心是Jasmine扫描规则和当前文件状态不匹配:
配置中指定Jasmine扫描dist/tests目录下后缀为.js的测试文件,但当前编写的是.ts格式的TypeScript测试文件,没有提前编译为JS输出到指定目录,Jasmine扫描不到符合规则的测试文件,就会返回找不到spec的提示。
如果已经执行过编译操作,需额外检查tsconfig.json中的outDir配置是否和jasmine.json的spec_dir路径对应,避免编译后的测试文件没有输出到Jasmine的扫描路径下。

解决方案

可任选以下一种方式修复:

  • 先编译TS代码再运行测试
    执行tsc命令完成TypeScript编译,确认dist/tests目录下生成了对应的*Spec.js文件后,再执行jasmine命令即可正常运行测试。
  • 直接运行TS格式测试文件
    1. 安装所需依赖:执行命令npm i jasmine-ts ts-node typescript @types/jasmine -D
    2. 修改jasmine.json中的spec_dir配置,指向存放TS测试文件的源码目录
    3. 后续使用jasmine-ts命令代替原生jasmine命令执行测试,无需提前编译TS文件即可直接运行。

内容的提问来源于stack exchange,提问作者Yusuf Sameh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:48:20