使用Jest执行打字稿测试时出现语法错误

时间:2019-08-06 08:16:37

标签: typescript jestjs

尝试使用Jest运行以打字稿2.7.1编写的测试,但由于该确切代码的语法错误,测试失败:

module X.Y.Z {

}

出现这样的错误消息:

SyntaxError: C:\Users\jest-typescript\__tests__\example.spec.ts: Unexpected token, expected ";" (1:7)

    > 1 | module X.Y.Z {
        |        ^
      2 | 
      3 | }
      4 | 

      at Parser.raise (node_modules/@babel/parser/lib/index.js:6325:17)

我正在使用以下CLI命令行运行测试:

jest -t --config=jest.config.js

似乎babel解析器的语法有问题。我的问题是我无法更改打字稿语法(传统代码库),因为我没有看到jest.config.js的选项,该选项允许我指定打字稿的版本。

我的jest.config.js如下:

module.exports = {
  coverageDirectory: "coverage",
  testEnvironment: "node",
  testMatch: [
    "**/__tests__/**/*.[jt]s?(x)"
  ]
};

除了重构代码外,我有什么想法可以解决这些语法错误?

1 个答案:

答案 0 :(得分:0)

好的,可以的是安装ts-jest并将以下选项添加到jest.config.js

"transform": {
    "^.+\\.tsx?$": "ts-jest"
  },

有关此link的更多信息。