尝试重新安装jest和jest babel的最新版本
npm install --save-dev jest
npm install --save-dev babel-jest regenerator-runtime
然后重新运行测试,这对我有效
React 17+
"devDependencies": {
"@testing-library/dom": "^8.11.1",
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"@types/jest": "^26.0.24",
"@types/react": "^17.0.27",
"@types/react-table": "^7.7.7",
"jest": "26.0.1",
"ts-jest": "26.0.0",
"typescript": "^4.5.4"
}
错误出现在jest 27+版本上,但将其设置为26后,它可以正常工作。
我曾经遇到过同样的问题。我先用jest进行了几次测试,然后在另一台机器上使用create-react-app初始化文件夹,并恢复之前的测试。之后,我切换回我的当前机器,运行npm install并运行测试。它给了我这个错误,所以我删除了node_modules并再次运行npm install。现在所有的测试都通过了。
我遇到了同样的错误:
Test suite failed to run, TypeError: Cannot read property 'bind' of undefined
和 @Harish_N 类似,但我使用的是 react-scripts。
在我的情况下,完全是关于在 package.json 中将测试相关依赖项更新到较新版本。
global.fetch = jest.fn().mockImplementation(() => mockFetchPromise);
字体:https://rishabhsrao.medium.com/mocking-and-testing-fetch-with-jest-c4d670e2e167
global.requestAnimationFrame = function(callback) {
setTimeout(callback, 0);
};
在你的 "package.json" 中有一个名为 "shim.js" 或 "setupshim.js" 的文件:
"setupFiles": [
<rootDir>/__test__/setup/shim.js
],
删除这个文件。这将有助于在“Jest”单元测试中消除此错误。
对我有用,希望对您也有用。
dist/index
文件上,然后是我的源文件,再然后是src/index
文件。以下是一个示例输出的样子:FAIL src/smoke.test.js
● Test suite failed to run
TypeError: Cannot read properties of undefined (reading 'default')
259 | enumerable: true,
260 | get: function get() {
> 261 | return _button["default"];
| ^
262 | }
263 | });
264 | Object.defineProperty(exports, "Input", {
at Object.get [as Button] (dist/index.js:261:22)
at Object.RealButton (src/skeleton/InputSkeletons.js:45:57)
at Object.require (src/skeleton/index.js:4:1)
at Object.require (src/index.ts:45:1)
at Object.require (src/setupTests.js:4:1)