2

升级到 jest-angular-preset ^8.3.0 并尝试运行结构测试后,使用 npm run 我看到以下错误:

● Test suite failed to run

TypeError: Cannot read property 'createStringLiteral' of undefined

  at Object.getCreateStringLiteral (../../node_modules/jest-preset-angular/build/TransformUtils.js:5:12)
  at ../../node_modules/ts-jest/dist/compiler/ts-compiler.js:169:42
      at Array.map (<anonymous>)
  at TsCompiler._makeTransformers (../../node_modules/ts-jest/dist/compiler/ts-compiler.js:168:47)
  at Object.getCustomTransformers (../../node_modules/ts-jest/dist/compiler/ts-compiler.js:219:63)
  at Object.getEmitOutput (../../node_modules/typescript/lib/typescript.js:136021:73)
  at TsCompiler.getCompiledOutput (../../node_modules/ts-jest/dist/compiler/ts-compiler.js:128:48)
  at TsJestCompiler.getCompiledOutput (../../node_modules/ts-jest/dist/compiler/ts-jest-compiler.js:13:39)
  at TsJestTransformer.process (../../node_modules/ts-jest/dist/ts-jest-transformer.js:146:37)
System
Environment Info:

System:
OS: Windows 10 10.0.19042
CPU: (8) x64 Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz
Binaries:
Node: 12.16.3 - C:\Program Files\nodejs\node.EXE
npm: 6.14.5 - C:\Program Files\nodejs\npm.CMD
Browsers:
Chrome: 89.0.4389.128
Edge: Spartan (44.19041.964.0), Chromium (91.0.864.54)
npmPackages:
@storybook/addon-a11y: ^6.1.15 => 6.1.15
@storybook/addon-actions: ^6.1.15 => 6.1.15
@storybook/addon-docs: ^6.1.15 => 6.1.15
@storybook/addon-jest: ^6.1.15 => 6.1.15
@storybook/addon-knobs: ^6.1.15 => 6.1.15
@storybook/addon-links: ^6.1.15 => 6.1.15
@storybook/addon-notes: ^5.3.21 => 5.3.21
@storybook/addon-storyshots: ^6.2.9 => 6.2.9
@storybook/addon-storysource: ^6.1.15 => 6.1.15
@storybook/addon-viewport: ^6.1.15 => 6.1.15
@storybook/addons: ^6.1.15 => 6.1.15
@storybook/angular: ^6.1.15 => 6.1.15
@storybook/storybook-deployer: ^2.8.7 => 2.8.7

如果这不是在此处和我不太确定的开玩笑预设角度问题板之间提出此问题的正确位置,我深表歉意。

但是,从看到其他板上发布的其他解决方案来看,这些是我为了达到这一点而升级到的重要依赖项的版本:“jest”:“^27.0.1”,“jest-preset-angular”:“ ^8.3.1", "ts-jest": "^27.0.1", "typescript": "~3.8.3"

我还清除了笑话缓存。


jest.config.js:
module.exports = {
verbose: true,
preset: 'jest-preset-angular',
testRegex: './*\.structural.test\.ts$',
setupFilesAfterEnv: ['./setupTests.ts'],
transformIgnorePatterns: ['/node_modules/'],
globals: {
'ts-jest': {
tsConfig: "tsconfig.spec.json"
}
}
}

4

1 回答 1

2

当我将 Jest 的版本增加到 27.0.6 时,我遇到了同样的问题。帮助我解决这个问题的是 package.json 中以下开发依赖项的增加:

  1. "@types/jest": "^26.0.23",
  2. “笑话”:"^27.0.6"
  3. “开玩笑预设角度”:"^9.0.4"
  4. “ts节点”:"^9.0.0"

然后我不得不修改负责配置测试的文件(在我的例子中是 test.ts),以导入jest-preset-angular这样的import 'jest-preset-angular/setup-jest'. 最后,在jest.config.js我添加了这些道具:

  1. 模块路径:['<rootDir>']
  2. 测试环境:'jsdom'
  3. 测试运行者:'jest-jasmine2'

我是怎么想出来的——我查看了每个依赖项的 CHANGELOG.md 文件,以寻找任何突破性的变化,因为版本显着增加。

于 2021-07-02T12:58:27.933 回答