首页 > 解决方案 > 为什么 ts-jest 不加载我的自定义 tsconfig 文件?

问题描述

出于某种原因,我的自定义 tsconfig 文件没有在 jest.config.ts 中被拾取。这是我的 jest.config.ts:

module.exports = {
  setupFilesAfterEnv: [`./jest.setup.ts`],
  testEnvironment: `jsdom`,
  roots: [
    `<rootDir>/test`
  ],
  testMatch: [
    `**/__tests__/**/*.+(ts|tsx|js)`,
    `**/?(*.)+(spec|test).+(ts|tsx|js)`
  ],
  transform: {
    "^.+\\.(ts|tsx)$": `ts-jest`
  },
  globals: {
    "ts-jest": {
      tsConfig: `tsconfig.jest.json`
    }
  }
}

我知道正在应用此配置的其他部分。例如,如果我删除全局变量上方的键,我的测试将不会运行。另外,我知道在我的 tsconfig.jest.json 文件中指定的更改是修复我的测试的必要更改,因为如果我在我的主 tsconfig.json 文件中进行相同的更改,我的测试运行良好。

我还尝试将所需的 tsconfig 编译器选项直接放入 jest.config.ts 文件中,但这似乎也不起作用:

module.exports = {
  setupFilesAfterEnv: [`./jest.setup.ts`],
  testEnvironment: `jsdom`,
  roots: [
    `<rootDir>/test`
  ],
  testMatch: [
    `**/__tests__/**/*.+(ts|tsx|js)`,
    `**/?(*.)+(spec|test).+(ts|tsx|js)`
  ],
  transform: {
    "^.+\\.(ts|tsx)$": `ts-jest`
  },
  globals: {
    "ts-jest": {
      tsConfig: {
        jsx: `react`
      }
    }
  }
}

标签: reactjsjestjsnext.jsreact-testing-libraryts-jest

解决方案


正确的关键tsconfig不是tsConfig


推荐阅读