Jest测试套件运行失败,已编写测试却提示无测试用例如何解决?
问题根本原因
你手动从jest-circus模块导入的test方法不属于Jest测试扫描逻辑可识别的用例声明方法,Jest运行时不会将你写的这个测试块识别为有效用例,因此抛出「测试套件不包含任何测试」的报错。
解决方法
方法1(推荐):移除多余导入语句
Jest默认会将test、it、expect等测试API全局注入到所有测试文件的运行环境中,无需手动导入。修改测试文件内容如下即可正常运行:
// file example.test.js const one = 1; test("example test", () => { expect(one).toBe(1); });
方法2:修改导入来源
如果是为了规避ESLint未定义变量报错、或者需要类型提示,必须手动导入API的话,请从@jest/globals包导入所有测试相关API,不要从jest-circus导入:
// file example.test.js const { expect, test } = require("@jest/globals"); const one = 1; test("example test", () => { expect(one).toBe(1); });
额外排查项
如果修改后依然报错,可检查Jest配置项:
- 确认
testRunner配置为默认值jest-circus/runner,不要自定义修改为其他运行器 - 确认没有配置
injectGlobals: false同时未正确导入测试API
内容的提问来源于stack exchange,提问作者rzeczuchy
相关产品推荐
相关产品推荐

