NodeJS - 使用 Jest 运行测试:TypeScript 配置文件出错

时间:2021-03-15 14:19:29

标签: typescript jestjs ts-jest

我正在尝试使用 Jest 运行一些测试,但我一直收到错误消息。这与 TypeScript 配置文件有关,我已经搜索过但没有找到太多。我正在使用 NodeJS、TypeORM 和 TypeScript。

我在运行 yarn test 时收到此错误:

<块引用>

错误:Jest:无法解析 TypeScript 配置文件

C:\Users\demis\Documents\Projects\Personal\nlw_node\jest.config.ts 类型错误:registerer.enabled 不是函数*** 在 readConfigFileAndSetRootDir (C:\Users\demis\Documents\Projects\Personal\nlw_node\node_modules\jest-config\build\readConfigFileAndSetRootDir.js:150:13) 在 readConfig (C:\Users\demis\Documents\Projects\Personal\nlw_node\node_modules\jest-config\build\index.js:217:18) 在 readConfigs (C:\Users\demis\Documents\Projects\Personal\nlw_node\node_modules\jest-config\build\index.js:406:26) 在 runCLI (C:\Users\demis\Documents\Projects\Personal\nlw_node\node_modules@jest\core\build\cli\index.js:230:59) 在 Object.run (C:\Users\demis\Documents\Projects\Personal\nlw_node\node_modules\jest-cli\build\cli\index.js:163:37)

First.test.ts

describe("First", () => {
  it("should", () => {
    expect(2 + 2).toBe(4);
  });
});

jest.config.ts

export default {
  bail: true,
  clearMocks: true,
  coverageProvider: "v8",
  preset: "ts-jest",
  testEnvironment: "node",
  testMatch: ["**/tests/*.test.ts"]
};

tsconfig.json

{
   "compilerOptions": {
      "lib": [
         "es5",
         "es6"
      ],
      "target": "es5",
      "module": "commonjs",
      "moduleResolution": "node",
      "outDir": "./build",
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "sourceMap": true
   }
}

package.json

{
  "name": "nlw_node",
  "version": "0.0.1",
  "description": "Awesome project developed with TypeORM.",
  "devDependencies": {
    "@types/express": "^4.17.11",
    "@types/jest": "^26.0.20",
    "@types/node": "^8.0.29",
    "@types/uuid": "^8.3.0",
    "jest": "^26.6.3",
    "nodemon": "^2.0.7",
    "ts-jest": "^26.5.3",
    "ts-node": "3.3.0",
    "typescript": "^4.2.3"
  },
  "dependencies": {
    "body-parser": "^1.18.1",
    "express": "^4.15.4",
    "mysql": "^2.14.1",
    "reflect-metadata": "^0.1.10",
    "typeorm": "0.2.31",
    "uuid": "^8.3.2"
  },
  "scripts": {
    "start": "nodemon src/index.ts",
    "typeorm": "ts-node node_modules/typeorm/cli.js",
    "test": "jest"
  }
}

ormconfig.ts

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "root",
  "database": "nlw_node",
  "synchronize": true,
  "logging": false,
  "entities": ["src/api/models/**.ts"],
  "migrations": ["src/database/migrations/**.ts"],
 
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "./src/database/migrations",
    "subscribersDir": "src/subscriber"
  }
}

3 个答案:

答案 0 :(得分:0)

我今天遇到了完全相同的错误,试图用 Angular 和 Typescript 开玩笑地运行测试。 我的问题通过重新安装 jest 解决了: npm install --save-dev jest

这表明我的设置存在潜在的配置问题 - 但至少我没有看到失败的错误。

答案 1 :(得分:0)

问题是我使用快速入门主题启动项目:Quick Start

但是当我使用安装主题手动启动项目时,由于某种原因它起作用了。 Installation

答案 2 :(得分:-2)

文件

<块引用>

jest.config.ts

应该

<块引用>

jest.config.js

相关问题