尝试使用create-react-app运行Jest的TypeScript

7
我正在尝试使用typescript在react中设置jest。 每当我运行npm test时,它都会给出错误。
npm test会给我以下错误:
Create React App仅支持覆盖这些Jest选项: • collectCoverageFrom • coverageReporters • coverageThreshold • snapshotSerializers.
这些在package.json Jest配置中的选项目前不受Create React App支持: • transform • testRegex • moduleFileExtensions
如果您想覆盖其他Jest选项,则需要从默认设置中退出。 您可以通过运行npm run eject来执行此操作,但请记住,这是单向操作。 您还可以提交问题到Create React App以讨论支持更多选项。
我不想退出,并且我也希望下面的选项能够工作: • transform • testRegex • moduleFileExtensions
我该怎么办?
我的package.json文件如下:
 {
  "name": "appname",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "jest-cli": "^22.3.0",
    "jest-enzyme": "^4.2.0",
    "react": "^16.2.0",
    "react-scripts": "1.1.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject",
    "storybook": "start-storybook -p 9009 -s public",
    "build-storybook": "build-storybook -s public"
  },
  "devDependencies": {
    "@storybook/addon-actions": "^3.3.13",
    "@storybook/addon-links": "^3.3.13",
    "@storybook/addon-storyshots": "^3.3.13",
    "@storybook/addons": "^3.3.13",
    "@storybook/react": "^3.3.13",
    "@types/enzyme": "^3.1.9",
    "@types/jest": "^22.1.2",
    "@types/react-dom": "^16.0.4",
    "@types/storybook__react": "^3.0.7",
    "awesome-typescript-loader": "^3.4.1",
    "babel-core": "^6.26.0",
    "enzyme": "^3.3.0",
    "jest": "^22.3.0",
    "prettier-eslint": "^8.8.1",
    "react-addons-test-utils": "^15.6.2",
    "react-dom": "^16.2.0",
    "redux": "^3.7.2",
    "ts-jest": "^22.0.4",
    "ts-loader": "^3.5.0",
    "typescript": "^2.7.2",
    "typescript-eslint-parser": "^13.0.0"
  },
  "jest": {
    "transform": {
      "^.+\\.tsx?$": "ts-jest"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ]
  }
}
`

你有什么问题? - Nic Nilov
请查看wmonk/create-react-app-typescript或其中的脚本。 - cartant
错误信息正确地描述了您遇到的问题。 - Agney
我也是。我已经执行了eject命令。但是......正在执行eject命令... config文件已经存在于您的应用程序文件夹中。我们无法继续,否则您将失去该文件或目录中的所有更改。请移动或删除它(可能需要备份副本),然后再次运行此命令。 - shinriyo
1个回答

1

在 CRA 2.1 及更高版本中, 您应该能够在测试文件中使用 TypeScript,无需任何特殊的 jest 配置。只需确保您的 __tests__ 文件夹嵌套在您的 src 文件夹下,或者您的测试文件位于您的 src 文件夹内并具有以下任意扩展名:

  • .test.js
  • .test.ts
  • .test.jsx
  • .test.tsx
  • .spec.js
  • .spec.ts
  • .spec.jsx
  • .spec.tsx

你必须将测试文件夹命名为__tests__吗? - Sebastian Nielsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接