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
相关产品推荐
相关产品推荐

