当我在本地运行 jest 测试时yarn test:unit:watch,我从 jest 库中收到此错误:
Test suite failed to run
TypeError: Cannot redefine property: window
at Object.<anonymous> (node_modules/jest-canvas-mock/lib/index.js:11:17)
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?有什么问题吗?我尝试删除 node_modules 并重新安装,并再次克隆存储库,但它正在重复。其他人则没有面临这个问题。
dhi*_*ilt 15
除了@marcw(链接mockImplementation)提到的方法之外,由于我使用了同一线程(链接)中的方法,我能够通过更改来解决问题Object.create
global.window = Object.create(window);
Run Code Online (Sandbox Code Playgroud)
到
global.window ??= Object.create(window);
Run Code Online (Sandbox Code Playgroud)
这是jest-canvas-mock 中的一个问题,已在 2.4.0 中修复。
升级到 2.4.0 或更高版本应该可以解决该问题,并允许使用节点 18 或更高版本。