[英]Jest: 'loose' mode configuration must be the same for @babel modules
在 React Native 0.70.1 项目及其样板代码上的 Jest 测试失败(在 react-native 初始化之后,仅显示 React Native 徽标的页面)。 测试的目的是使用 React Native 0.70.1/Jest 29 测试 jest env 设置。这是App.test.js
:
/**
* @format
*/
import 'react-native';
import React from 'react';
import App from '../App';
// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';
it('renders correctly', () => {
renderer.create(<App />);
});
yarn jest
错误是:
Error: /Users/macair/Documents/code/js/xyz_app6/node_modules/jest-runner/build/index.js: 'loose' mode configuration must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled).
at enableFeature (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/features.js:51:13)
at PluginPass.pre (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/index.js:82:35)
at transformFile (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:97:27)
at transformFile.next (<anonymous>)
at run (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:35:12)
at run.next (<anonymous>)
at transform (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:29:41)
at transform.next (<anonymous>)
at evaluateSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:251:28)
at sync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:89:14)
at stopHiding - secret - don't use this - v1 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:50:12)
at transformSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:56:76)
at Object.process (/Users/macair/Documents/code/js/xyz_app6/node_modules/babel-jest/build/index.js:309:57)
at ScriptTransformer.transformSource (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:615:31)
at revertHook.exts (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:863:18)
at Module._compile (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:130:29)
at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
at Object.newLoader (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:141:7)
at Module.load (node:internal/modules/cjs/loader:998:32)
at Module._load (node:internal/modules/cjs/loader:839:12)
at Module.require (node:internal/modules/cjs/loader:1022:19)
at require (node:internal/modules/cjs/helpers:102:18)
at requireOrImportModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-util/build/requireOrImportModule.js:53:28)
at ScriptTransformer.requireAndTranspileModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:887:66)
at /Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:269:46
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Promise.all (index 0)
at async TestScheduler.scheduleTests (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:261:7)
at async runJest (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/runJest.js:405:19)
at async _run10000 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:386:7)
at async runCLI (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:237:3)
at async Object.run (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-cli/build/cli/index.js:155:37)
error Command failed with exit code 1.
但是,应用程序中不存在 @babel/plugin-proposal-class-properties 和 @babel/plugin-proposal-private-property-in-object。 这是babel.config.js
:
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
"plugins": ["@babel/plugin-proposal-private-methods"] //added for jest
};
这是 package.json 的部分:
"devDependencies": {
"@babel/core": "^7.19.1",
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-transform-flow-strip-types": "^7.19.0",
"@babel/runtime": "^7.19.0",
"@react-native-community/eslint-config": "^3.1.0",
"@testing-library/react-native": "^11.1.0",
"babel-jest": "^29.0.3",
"eslint": "^8.23.1",
"jest": "^29.0.3",
"metro-react-native-babel-preset": "^0.72.1",
"react-test-renderer": "18.1.0"
},
"jest": {
"preset": "react-native",
"cacheDirectory": "./cache",
"setupFiles": [
"<rootDir>/jest.setup.js"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
],
"transform": {
"\\.[jt]sx?$": "babel-jest"
},
"transformIgnorePatterns": []
}
开玩笑的配置中缺少什么? 非常感谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.