jest 指北

报错及解决方案:

Cannot log after tests are done. Did you forget to wait for something async in your test?

在这里插入图片描述
在测试脚本的全局增加如下代码

jest.setTimeout(30000);

在这里插入图片描述

TypeError: setTimeout(…).unref is not a function

在这里插入图片描述

解决方案

"jest": {
    "testPathIgnorePatterns": [
      "/node_modules/",
      "<rootDir>/__tests__/fixtures/"
    ],
    "collectCoverage": true,
    //在package.json中添加这行
    "testEnvironment": "node"
 }

Your test suite must contain at least one test.

在这里插入图片描述
这是因为__tests__/fixtures/index.js 文件中没有测试脚本所导致的
解决方案:
package.json中添加jest配置

 "jest": {
    "testPathIgnorePatterns": [
      "/node_modules/",
      "<rootDir>/__tests__/fixtures/"
    ]
  }

process.exit called with “0”

在这里插入图片描述
解决方案:
相当于在jest的运行时修改了node process 的原型方法exit

const setProperty = (object, property, value) => {
 const originalProperty = Object.getOwnPropertyDescriptor(object, property)
 Object.defineProperty(object, property, { value })
 return originalProperty
}

const mockExit = jest.fn()
setProperty(process, 'exit', mockExit)
//这里写你的测试脚本
//-------
//-------
// code 值就是你调用process.exit()方法中传的code 要跟此处的code 保持一致
expect(mockExit).toHaveBeenCalledWith(code)

查看未被cover住的代码:(jest 未被覆盖住的代码)

在根目录起一个http server 可以全局安装http-server或者在当前项目都可以
server启动后打开浏览器安如下方式点击
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发布了77 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37653449/article/details/97618078
今日推荐