IDE 无法识别 Jest 及其功能

Posted

技术标签:

【中文标题】IDE 无法识别 Jest 及其功能【英文标题】:IDE does not recognize Jest and its functions 【发布时间】:2021-08-25 13:43:16 【问题描述】:

我有一个基本的 react-native/expo 模板应用程序。我在开发依赖项中添加了jest-exporeact-test-renderer,并且还更新了package.json,如expo docs for testing 中所述。


  "main": "node_modules/expo/AppEntry.js",
  "scripts": 
    ...
    "test": "jest"
  ,
  "dependencies": 
    "expo": "~41.0.1",
    ...
    "react": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz",
  ,
  "devDependencies": 
    "@babel/core": "^7.9.0",
    "@testing-library/jest-native": "^4.0.1",
    "@testing-library/react-native": "^7.2.0",
    "jest-expo": "^41.0.0",
    "react-test-renderer": "^17.0.2"
  ,
  "private": true,
  "jest": 
    "preset": "jest-expo",
    "transformIgnorePatterns": [
      "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/.*)"
    ],
    "setupFilesAfterEnv": [
      "@testing-library/jest-native/extend-expect"
    ]
  

我还添加了React Native Testing Library 来测试 UI。并且测试运行良好。

但问题是 WebStorm 。

你能帮我解决这个问题吗?

更新

根据 cmets,我尝试通过设置配置安装 Typescript Jest 类型定义,并尝试使用 yarn/npm 安装。但这没有帮助。

另一个更新

但是,如果我取消选中项目的 node_modules 库,Jest 类型定义就会启动。

但是这样做,其他类型的node_modules就不行了!

【问题讨论】:

您可以尝试为 jest 安装类型定义吗? npmjs.com/package/@types/jest @UğurEren 是的,我已经尝试添加@types/jest,但问题仍然存在。 【参考方案1】:

你试过这个WebStorm configuration吗?

您可能已经注意到一些全局 Jest 方法(例如 javascript 文件中的 describebeforeEach) 被标记为未解析 在编辑器中。要解决这个问题,请安装 TypeScript 类型定义 Jest 的文件:转到首选项 |语言和框架 | JavaScript |库,单击右侧的下载 对话框,然后在列表中搜索 Jest 并单击安装。或添加 @types/jest 到项目 package.json 中的 devDependencies。

【讨论】:

您好,我尝试安装类型定义,但没有成功。但是,如果我取消选中 node_modules 库,则 Jest 类型可以工作。但是这样做其他 node_modules 类型不起作用。我已经根据最近的事态发展更新了这个问题。【参考方案2】:

在首选项 - 语言和框架 - JavaScript - 库中,按下载,然后从列表中选择 jest,按下载并安装。如果它不起作用,请尝试在本地文件夹中使用 npm i @types/jest

【讨论】:

您好,我尝试安装类型定义,但没有成功。但是,如果我取消选中 node_modules 库,则 Jest 类型可以工作。但是这样做其他 node_modules 类型不起作用。我已经根据最近的事态发展更新了这个问题。 @MswTm 您可以将您的.eslintrc 文件添加到问题中吗? 对不起,我没有使用 .eslintrc

以上是关于IDE 无法识别 Jest 及其功能的主要内容,如果未能解决你的问题,请参考以下文章

VSCode 无法识别开玩笑的自定义匹配器

模板默认语法无法识别

LINQ to DataSet,DataTable.AsEnumerable() 无法识别

Webstorm 中的 ESLint 无法识别 React 类型

adb devices可识别真机,无法识别模拟器

Java 上的 Sikuli 无法识别图像