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

Jest测试失败仍显示100%覆盖率问题求助

Jest覆盖率异常:始终显示100%覆盖率(即使测试失败或未覆盖代码)

环境与版本

  • Jest版本:24.9.0
  • 技术栈:vue@2.6.14、@vue/cli-service@4.5.18、@vue/cli-plugin-unit-jest@4.5.18、typescript@3.9.10
  • Node.js:14.15.4,npm:6.14.10

问题重现步骤

  • 初始状态(Node.js 14 + esnext配置)下,Jest覆盖率功能正常运行,无异常;
  • 将Node.js升级至16、把esnext改为es2019并添加快照配置后,覆盖率功能失效;
  • 还原所有更改回到初始状态,问题依然存在——即便测试用例执行失败,Jest仍会显示100%的覆盖率。

Jest配置

collectCoverageFrom: ["src/**/*.vue"]

"test:unit": "npm run requirements-check && vue-cli-service test:unit --colors --coverage --maxWorkers=4 -u"

示例测试用例

(对应Vue文件包含多个未被测试的函数,但执行该用例后仍显示100%覆盖率)

describe("Can able to see page is mounted", () => {
  let i18n: VueI18n;
  let localVue: VueConstructor<Vue>;
  let routerMock: any;
  let wrapper: Wrapper<test& {
    [key: string]: any;
   }>;

beforeEach(() => {
    localVue = createLocalVue();
    localVue.use(plugins);
    localVue.use(VueI18n);
    localVue.prototype.$notify = jest.fn();
    localVue.config.ignoredElements = [/vl*/];

    window.scrollTo = jest.fn();

    routerMock = {
        $router: {
        replace: jest.fn(),
        push: jest.fn(),
        go: jest.fn()
      }
    };

    wrapper = mount(test, {
      i18n,
      localVue,
      mocks: routerMock,
      directives: {
        "full-screen-loading": jest.fn()
      },
      stubs: ["router-link", "router-view"]
    });
  });

  it("test", () => {
     expect(wrapper.exists()).toBe(true);
     expect(wrapper.find(".test").exists()).toBe(true);
     expect(wrapper.element).toMatchSnapshot();
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 02:15:37