如何在Jest中禁用“Use Strict”

xcitsw88  于 2023-03-27  发布在  Jest
关注(0)|答案(2)|浏览(193)

我正在为一个使用八进制文字的代码库编写一些单元测试。每当使用npm test执行测试时,都会出现如下语法错误:
strict模式下不允许使用旧版八进制文本。
我应该强调的是,"use strict"没有出现在源代码的任何地方,我也无法在package-lock.jsonpackage.json中找到任何指示严格模式的选项。这两个JSON文件都是用npm init -y创建的,除了添加以下内容外,没有进一步修改:

"scripts": {
    "test": "jest"
  },

我怎样才能强制Jest退出严格模式,以便测试具有遗留八进制文字的代码?

tpgth1q7

tpgth1q71#

根据文件:
默认情况下,Jest将使用babel-jest转换器
您可以通过设置以下Jest配置(例如,在jest.config.<ext>中或在包文件中的$.jest下)显式地告诉Jest您不希望它尝试应用任何转换:

"transform": {}

查看下面的完整示例。或者,您可以保持Babel的转换活动,但使用"sourceType": "script"配置它。

  • package.json
{
  "name": "strict-jest",
  "version": "0.1.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "jest": "^28.1.2"
  },
  "jest": {
    "transform": {}
  }
}
  • index.test.js
it("works", () => {
  expect(0100).toEqual(64);
});
  • 输出:
$ npm t

> strict-jest@0.1.0 test
> jest

 PASS  ./index.test.js
  ✓ works (2 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.257 s
Ran all test suites.
nmpmafwu

nmpmafwu2#

我在使用Jest和TypeScript时也遇到了这个问题。
对我有用的是在tsconfig.json文件中设置"strict": false"noImplicitUseStrict": true。我还删除了jest.config.ts文件中的任何jest转换,如下所示:"transform": {}

相关问题