首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError:在运行Jest-expo测试时,不能在模块外使用导入语句

SyntaxError:在运行Jest-expo测试时,不能在模块外使用导入语句
EN

Stack Overflow用户
提问于 2020-11-10 15:22:12
回答 1查看 1.9K关注 0票数 4

项目的配置。目前在这个项目中使用jest-expo进行测试。在这个项目中,jest的版本是39.0.0。全球安装的Jest版本为26.6.3

package.json

代码语言:javascript
复制
"scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "test": "jest",
    "type": "module"
  },
...
"devDependencies": {
    "@babel/core": "^7.12.3",
    "babel-preset-expo": "^8.3.0",
    "jest-expo": "^39.0.0",
    "react-test-renderer": "^17.0.1"
  },
"jest": {
    "preset": "jest-expo"
  }

jest.config.js

代码语言:javascript
复制
module.exports = {
    setupFilesAfterEnv: [
      './setup-tests.js',
    ],
    "transformIgnorePatterns": [
      "/node_modules/@codler/react-native-keyboard-aware-scroll-view/lib/index.js",
      "/node_modules/@react-native-community/async-storage/(?!(lib))",
      "/node_modules/native-base-shoutem-theme/.*",
      "node_modules/native-base/.*",
      "node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|@sentry/.*|native-base-*|native-base-shoutem-*)"
    ],
    verbose : true
  };

babel.config.js

代码语言:javascript
复制
module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: ['inline-dotenv'],
  };
};

我正在尝试呈现一个响应本机登录页面的快照:

此错误是由LoginScreen.js中的以下导入模块引起的。

代码语言:javascript
复制
import {
    Content,
    Container,
    H2,
    Form,
    Item,
    Input,
    Button,
    Text,
    View,
} from "native-base";

LoginScreen.test.js内部的测试用例

代码语言:javascript
复制
import LoginScreen from './LoginScreen';
import React from 'react';
import renderer from 'react-test-renderer';

it('renders LoginScreen correctly', () => {
    const tree = renderer.create(<LoginScreen />).toJSON();
    expect(tree).toMatchSnapshot();
});

测试用例正在抛出错误

代码语言:javascript
复制
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import connectStyle, { clearThemeCache } from "./src/connectStyle";
                                                                                             ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1258:14)
      at Object.<anonymous> (node_modules/native-base/src/index.js:1:1)

我已经尝试了其他类似的答案,在堆栈溢出。但他们都不适用于目前的项目,我正在工作。

我已经将connectStyle添加到Jest transformIgnorePatterns中,但它仍然抛出了这个错误。

当前项目:使用世博开发的本地移动应用程序。用jest-世博做测试。项目的配置。

尝试卸载和重新安装所有的npm和世博模块,这也没有帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-05-19 17:53:42

这是一个关于本地基地端的未决问题。有关详情,请参阅本票:

https://github.com/GeekyAnts/NativeBase/issues/3105

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64771728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档