typescript - 测试无法使用 Jest 和 React Native 运行
问题描述
在尝试运行测试时,将 React Native 与 Jest 和 TypeScript 一起使用,我得到:
Test suite failed to run
[BABEL] unknown: Preset /* your preset */ requires a filename to be set when babel is called directly,
babel.transform(code, { filename: 'file.ts', presets: [/* your preset */] });
See https://babeljs.io/docs/en/options#filename for more information.
知道什么会导致这种情况吗?
这是我的jest
部分package.json
:
"jest": {
"preset": "react-native",
"roots": [
"<rootDir>/__tests__"
],
"setupFiles": [
"<rootDir>/scripts/jest/setup.js",
"<rootDir>/node_modules/appcenter/test/AppCenterMock.js",
"<rootDir>/node_modules/appcenter-analytics/test/AppCenterAnalyticsMock.js",
"<rootDir>/node_modules/appcenter-crashes/test/AppCenterCrashesMock.js",
"<rootDir>/node_modules/appcenter-push/test/AppCenterPushMock.js",
"<rootDir>/node_modules/react-native-localization.js",
"./config/jest/mock.fetch.js",
"./config/jest/react-native-localization.js"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"transform": {
"^.+\\.(js)$": "<rootDir>/node_modules/babel-jest",
"\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"collectCoverage": true,
"coverageDirectory": "coverage",
"coverageReporters": [
"text-summary",
"html"
],
"testPathIgnorePatterns": [
"\\.snap$",
"<rootDir>/node_modules/",
"<rootDir>/lib/"
],
"collectCoverageFrom": [
"**/*.{js,jsx}",
"artifacts/**/*.js",
"!artifacts/**/*.spec.js",
"!artifacts/**/*.index.js",
"!<rootDir>/node_modules/"
]
},
这是我的babel.config.js
文件:
module.exports = {
presets: [
'module:metro-react-native-babel-preset'
],
plugins: [
'babel-plugin-transform-typescript-metadata',
['@babel/plugin-proposal-decorators', { legacy: true }]
],
};
解决方案
推荐阅读
- angular - 从特定用户获取数据的问题(firestore 规则)
- amazon-web-services - 如何将 Letencrypt SSL 证书从 EC2 传输到 Fargate?
- ipc - 将 gRPC 用于实例级方法/调用?
- java - Maven:打包和依赖解析
- ruby - 如何使用不同的参数模拟相同的数据库调用两次并将所有响应值与值数组匹配?
- javascript - Javascript if/else 语句有帮助,我对这段代码做错了什么?
- android - 在主线程上访问 ROOM DB
- java - 如何跳过文件的第一行?
- r - 如何增加 gRadio 窗口的宽度?
- linux - 从 tar 归档 Linux 中提取前 10 个最大的文件