React/TypeScript 的 Jest 配置问题

Aid*_*rov 6 unit-testing jestjs react-typescript

尝试在我的项目上配置 jest env,当我运行简单的测试用例时出现以下错误:

Test suit failed to run
  TypeError: Jest: a transform must export a 'process' function
    at ScriptTransformer._getTransformer(../../node_modules/jest-runtime/node_modules/@jest/transform/build/ScriptTransformer.js:360.13)
Run Code Online (Sandbox Code Playgroud)

小智 0

我专门针对 css/scss 模块遇到了这个问题。

通过安装jest-css-modules-transformnpm 包解决了这个问题。

module.exports = {
  testPathIgnorePatterns: ["<rootDir>/.next/", "<rootDir>/node_modules/"],
  setupFilesAfterEnv: ["<rootDir>/setupTests.js"],
  transform: {
    "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
    "\\.(css|less|scss|sass)$":
      "<rootDir>/node_modules/jest-css-modules-transform",
  },
};
Run Code Online (Sandbox Code Playgroud)

但是当我使用下面的配置(使用 styleMock.js 创建的转换方法)时,我收到了上述错误。

module.exports = {
  testPathIgnorePatterns: ["<rootDir>/.next/", "<rootDir>/node_modules/"],
  setupFilesAfterEnv: ["<rootDir>/setupTests.js"],
  transform: {
    "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
    "\\.(css|less|scss|sass)$": "<rootDir>/test/styleMock.js",
  },
};
Run Code Online (Sandbox Code Playgroud)

希望这对同一地区的人有所帮助。