将 TypeScript 与 Jest 一起使用不会捕获语法错误

eve*_*sor 5 javascript typescript jestjs

将 typescript 编译回 js 时,您可以指定--alwaysStrict以下选项:

以严格模式解析并为每个源文件发出“use strict”

因此,如果函数中缺少强制参数,它就会被这种严格模式捕获。

我们正在使用ts-jest,因此我们可以使用 Jest 来测试我们的 Typescript 代码。我们面临的问题是我们还没有找到一种方法来模仿严格的解析行为。

这真的很烦人,因为所有测试似乎都通过了,但有时会出现语法错误,我们只有在创建生产版本时才会注意到(我们设置--alwaysStrict

在我们的jest.config.js我们有:

module.exports = {
  roots: ["<rootDir>/src"],
  transform: {
    "^.+\\.tsx?$": "ts-jest"
  },
  testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
  "testEnvironment": "node"
};```
Run Code Online (Sandbox Code Playgroud)

Bri*_*ams 3

ts-jest默认情况下使用tsconfig.json您项目中的。

(注意:如果您想要一个单独的配置文件进行测试,您可以配置ts-jest为使用不同的配置文件

您可以alwaysStrict配置文件compilerOptions的 部分中进行设置,并在编译 TypeScript 时使用该标志。ts-jest

  • 顺便说一句,除了“alwaysStrict”之外,我还需要添加选项“diagnostics”设置为“true”以确保测试失败 (2认同)