我们使用了react-native中单元测试的jest。它运行良好。我们刚刚删除了npm并重新安装了它,然后当我们试图运行单元测试(npm测试)时,我们得到了以下错误,我们无法运行测试用例。
可能出了什么差错。
6mzjoqzu1#
尝试重新安装这两个jest和jestbabel最后版本npm install --save-dev jestnpm install --save-dev babel-jest regenerator-runtime然后重新做测试,对我很有效
npm install --save-dev jest
npm install --save-dev babel-jest regenerator-runtime
3hvapo4f2#
将jest-cli版本从18升级到19解决了这个问题。Issue in github repo of jest
zpgglvta3#
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后,它工作得很好。
jjhzyzn04#
我也有同样的问题。我开始只使用jest进行了几个测试,然后在另一台机器上用create-react-app初始化了文件夹,并恢复了以前的测试。之后,我切换回当前的机器,安装npm并运行测试。它给了我这个错误,所以我删除了node_modules并重新安装了npm。所有的测试都绿色了。
0sgqnhkj5#
我犯了同样的错误:
Test suite failed to run, TypeError: Cannot read property 'bind' of undefined
类似于@Harish_N,但我使用的是 react-scripts。在我的例子中,完全是关于将测试相关依赖项更新到package.json中的更新版本。
t5zmwmid6#
如果您将这行代码添加到
global.requestAnimationFrame = function(callback) { setTimeout(callback, 0); };
在你的“package.json”中名为“shim.js”或“setupshim.js”的文件:
"setupFiles": [ <rootDir>/__test__/setup/shim.js ],
删除此文件。这将有助于在“Jest”单元测试中删除此错误。这对我有用,希望这对你也有用。
r7xajy2e7#
把这个加到你的代码里。
global.fetch = jest.fn().mockImplementation(() => mockFetchPromise);
字体:https://rishabhsrao.medium.com/mocking-and-testing-fetch-with-jest-c4d670e2e167
yk9xbfzb8#
我在最新版本的Jest上遇到了同样的错误。我最终意识到在我的源代码中有一个循环依赖。解决循环依赖让我的测试再次工作。输出很模糊,但事后来看,堆栈跟踪给了我所需的线索,让我发现存在循环依赖问题。问题发生在dist/index文件上,然后是我的源文件,然后是我的src/index文件。下面是输出的样子,例如:
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)
8条答案
按热度按时间6mzjoqzu1#
尝试重新安装这两个jest和jestbabel最后版本
npm install --save-dev jest
npm install --save-dev babel-jest regenerator-runtime
然后重新做测试,对我很有效
3hvapo4f2#
将jest-cli版本从18升级到19解决了这个问题。
Issue in github repo of jest
zpgglvta3#
React 17+
错误是在jest 27+版本,但设置为26后,它工作得很好。
jjhzyzn04#
我也有同样的问题。我开始只使用jest进行了几个测试,然后在另一台机器上用create-react-app初始化了文件夹,并恢复了以前的测试。之后,我切换回当前的机器,安装npm并运行测试。它给了我这个错误,所以我删除了node_modules并重新安装了npm。所有的测试都绿色了。
0sgqnhkj5#
我犯了同样的错误:
类似于@Harish_N,但我使用的是 react-scripts。
在我的例子中,完全是关于将测试相关依赖项更新到package.json中的更新版本。
t5zmwmid6#
如果您将这行代码添加到
在你的“package.json”中名为“shim.js”或“setupshim.js”的文件:
删除此文件。这将有助于在“Jest”单元测试中删除此错误。
这对我有用,希望这对你也有用。
r7xajy2e7#
把这个加到你的代码里。
字体:https://rishabhsrao.medium.com/mocking-and-testing-fetch-with-jest-c4d670e2e167
yk9xbfzb8#
我在最新版本的Jest上遇到了同样的错误。我最终意识到在我的源代码中有一个循环依赖。解决循环依赖让我的测试再次工作。
输出很模糊,但事后来看,堆栈跟踪给了我所需的线索,让我发现存在循环依赖问题。问题发生在
dist/index
文件上,然后是我的源文件,然后是我的src/index
文件。下面是输出的样子,例如: