加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何避免使用Typescript转换Jest __mocks__

发布时间:2020-12-15 20:20:16 所属栏目:百科 来源:网络整理
导读:我正在收到Jest的警告,因为我找到了它的.ts和.js版本,并要求我删除一个,即: jest-haste-map: duplicate manual mock found: Module name: feedTestData Duplicate Mock path: /Users/[username]/Documents/git/[projectname]/src/state/ducks/feed/__mocks_
我正在收到Jest的警告,因为我找到了它的.ts和.js版本,并要求我删除一个,即:

jest-haste-map: duplicate manual mock found:
  Module name: feedTestData
  Duplicate Mock path: /Users/[username]/Documents/git/[projectname]/src/state/ducks/feed/__mocks__/feedTestData.ts
This warning is caused by two manual mock files with the same file name.
Jest will use the mock file found in: 
/Users/[username]/Documents/git/[projectname]/src/state/ducks/feed/__mocks__/feedTestData.ts
 Please delete one of the following two files: 
/Users/[username]/Documents/git/[projectname]/dist/state/ducks/feed/__mocks__/feedTestData.js
/Users/[username]/Documents/git/[projectname]/src/state/ducks/feed/__mocks__/feedTestData.ts

我尝试使用tsconfig.json中的exclude键来解决问题,但我找不到匹配所有__mocks__文件夹的glob模式.

即“exclude”:[“** / __ mocks __ / *”]从我的dist文件夹中删除根__mocks__文件夹,但不删除任何子文件夹.

为了它的价值,我正在使用Expo React Native.在package.json中我的Jest设置如下所示:

"jest": {
    "preset": "react-native","moduleFileExtensions": [
      "ts","tsx","js","json"
    ],"transform": {
      "^.+.(js)$": "<rootDir>/node_modules/babel-jest",".(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },"transformIgnorePatterns": [
      "node_modules/(?!(jest-)?react-native|react-navigation)"
    ],"testRegex": "(/__tests__/.*|.(test|spec)).(ts|tsx|js)$","testPathIgnorePatterns": [
      ".snap$","<rootDir>/node_modules/","<rootDir>/dist/"
    ],"cacheDirectory": ".jest/cache","collectCoverageFrom": [
      "src/**/*.{ts,tsx}","!**/node_modules/**",],"setupFiles": [
      "./src/global-mock-fetch.ts","./__mocks__/redux-mock-store.ts"
    ],"automock": false
  }

解决方法

是否可以通过指示打字稿不转换模拟目录中的文件来解决问题?

我在Angular jest设置中取得了成功,在我的tsconfig中有以下内容:

"exclude": [
        "**/__mocks__/*"
    ]

我希望它可以帮到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读