尝试将 Jest 与 Typescript 一起使用时 tsconfig.json 文件中的问题

Problem in the tsconfig.json file when trying to use Jest with Typescript

我收到的错误消息是:

File 'd:/Project/server/jest.config.ts' is not under 'rootDir' 
'd:/Project/server/src'. 'rootDir' is expected to contain all source files.
The file is in the program because:
Matched by include pattern '**/*' in 'd:/Project/server/tsconfig.json'

我的 tsconfig.json 文件是:

{
 "compilerOptions": {
    "target": "es2020",
    "module": "commonjs",

    "rootDir": "./src",
    "outDir": "./dist",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true
  }
}

我的 jest.config.ts 文件是:

export default {
    clearMocks: true,
    collectCoverage: true,
    coverageDirectory: "coverage",
    coverageProvider: "v8",
    transform: {
        "^.+\.(t|j)sx?$": ["@swc/jest"],
    },
};

我正在尝试完全遵循每个文档的指示。

我做错了什么?

您必须将 jest.config.ts 文件移动到 src/ 目录中才能工作。我会说这个错误是不言自明的。

为了将来参考,另一种可能的解决方案是简单地更改

"rootDir": "./src",

"rootDir": "./",

tsconfig.json 文件中。

特别是如果您不想将所有配置文件移动到 src/ 目录中。