【问题标题】:Jest Unexpected identifier - Angular开玩笑意外的标识符 - Angular
【发布时间】:2020-02-11 05:43:32
【问题描述】:

我正在处理一个 jhipster 生成的角度项目,当我尝试运行我的测试时,我收到以下错误

...
{import _ from 'lodash';                                                                                             
  SyntaxError: Unexpected identifier
  at ScriptTransformer._transformAndBuildScript 
(node_modules/@jest/transform/build/ScriptTransformer.js
...

我对 jest 和所需的相关配置非常陌生。据我所知,jest 无法处理 ES6 模块系统。

我的 jest.config.ts

module.exports = {
preset: 'jest-preset-angular',
setupFilesAfterEnv: ['<rootDir>/src/test/javascript/jest.ts'],
coverageDirectory: '<rootDir>/target/test-results/',
globals: {
    'ts-jest': {
        stringifyContentPathRegex: '\\.html$',
        tsConfig: '<rootDir>/tsconfig.json',
        astTransformers: [require.resolve('jest-preset-angular/InlineHtmlStripStylesTransformer')]
    }
},
coveragePathIgnorePatterns: [
    '<rootDir>/src/test/javascript'
],
moduleNameMapper: {
    'app/(.*)': '<rootDir>/src/main/webapp/app/$1'
},
reporters: [
    'default',
    [ 'jest-junit', { outputDirectory: './target/test-results/', outputName: 'TESTS-results- 
jest.xml' } ]
],
testResultsProcessor: 'jest-sonar-reporter',
transformIgnorePatterns: ['node_modules/(?!@angular/common/locales)'],
testMatch: ['<rootDir>/src/test/javascript/spec/**/@(*.)@(spec.ts)'],
rootDir: '../../../',
testURL: "http://localhost/"
};

我已经阅读过这个问题,但我无法使用我阅读的信息来解决我自己的问题,所以我恳请你帮助我了解一下这个问题

【问题讨论】:

    标签: angular jestjs


    【解决方案1】:

    对于那些面临类似问题的人。

    在查阅了文档和相关帖子后,我找到了解决方案。

    Jest 只理解 CommonJS,默认情况下 Jest 会转换节点模块内的任何模块。因此,我们需要明确通知 Jest 查找并转换节点模块内最终不在 commonJS 中的任何模块。

    就我而言,我只是修改了这一行

    transformIgnorePatterns: ['node_modules/(?!@angular/common/locales|problematic_module_name)']
    

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 2018-12-18
      • 1970-01-01
      • 2021-10-28
      • 2017-09-13
      • 2019-03-10
      • 1970-01-01
      • 2019-03-19
      • 2018-04-04
      相关资源
      最近更新 更多