【问题标题】:configure Jest to support Typescript (NodeJs)配置 Jest 以支持 Typescript (NodeJs)
【发布时间】:2019-12-17 05:59:56
【问题描述】:

我想为我的 Node/Express/Typescript 应用程序编写测试。在我的 src 目录旁边,我添加了一个 tests 目录,其中包含一个包含此演示内容的 app.spec.ts 文件

import { App } from '../src/app';

describe('App', () => {
    let instance: App;

    beforeEach(() => {
        instance = new App();
    });

    it('creates an instance of App', async () => {
        expect(instance).toBeInstanceOf(App);
    });
});

不幸的是,Jest 无法处理 Typescript。

详情:

C:...\tests\app.spec.ts:1 ({“目的。 “:功能(模块,出口,要求,__目录名,__文件名,全局,开玩笑){导入 { 应用 } 来自 '../src/app';

SyntaxError: Unexpected token { 在 ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:471:17) 在 ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:513:25)

这是我的 package.json(相关字段)

{
  "scripts": {
    "start": "node dist/app.js",
    "dev": "nodemon src/app.ts",
    "build": "tsc -p .",
    "test": "jest",
    "testWithCoverage": "jest --coverage"
  },
  "devDependencies": {
    "@types/express": "^4.17.0",
    "@types/jest": "^24.0.17",
    "@types/node": "^12.6.9",
    "@typescript-eslint/eslint-plugin": "^1.13.0",
    "@typescript-eslint/parser": "^1.13.0",
    "eslint": "^5.16.0",
    "eslint-config-airbnb-base": "^13.2.0",
    "eslint-plugin-import": "^2.18.2",
    "jest": "^24.8.0",
    "nodemon": "^1.19.1",
    "ts-jest": "^24.0.2",
    "ts-node": "^8.3.0",
    "typescript": "^3.5.3"
  }
}

我还创建了一个包含该内容的 jest.config.js 文件

module.exports = {
    roots: [
        './tests',
    ],
    moduleFileExtensions: [
        'ts',
        'tsx',
        'js',
        'jsx',
    ],
};

有人知道这里缺少什么吗?

【问题讨论】:

  • 对不起,您的回答是正确的!但我不得不等 10 分钟 :) 非常感谢

标签: javascript node.js typescript jestjs


【解决方案1】:

将您的 jest.config.js 文件更改为:

module.exports = {
  "roots": [
    "<rootDir>/src",
    "<rootDir>/tests"
  ],
  "transform": {
    "^.+\\.tsx?$": "ts-jest"
  },
}

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多