报错及解决方案:
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启动后打开浏览器安如下方式点击
扫描二维码关注公众号,回复:
8565147 查看本文章