ng test命令不适用于Angle 8和Jest

时间:2019-06-08 16:48:27

标签: angular jestjs karma-jasmine

当我尝试使用带有Angular 8和Jest的“ npm run test”命令运行测试用例时,我遇到了一个问题

我正在尝试从Karma/jasmine框架迁移到Jest,还将角度版本升级到8。

但是npm运行测试命令抛出以下错误

  

找不到文件:/src/tsconfig.spec.json(解析为:   D:\ app-jest \ src \ tsconfig.spec.json)

     

在ConfigSet.resolvePath(node_modules / ts-jest / dist / config / config-> set.js:712:19)

Package.json

   {
      scripts": {
          "ng": "ng",
          "start": "ng serve",
          "test": "jest"
     }

jest.config.js

 module.exports = {
    preset: 'jest-preset-angular',
    roots: ['src'],
    setupFilesAfterEnv: ["./src/setup-jest.ts"]
 };

2 个答案:

答案 0 :(得分:0)

这是我的建议:

1。在您的package.json文件中使用此语句。显然,您可能需要更改文件的路径。

  "jest": {
    "preset": "jest-preset-angular",
    "setupFilesAfterEnv": [
      "<rootDir>/src/setupJest.ts"
    ],
    "globals": {
      "ts-jest": {
        "tsConfig": "./tsconfig.spec.json",
        "diagnostics": false,
        "stringifyContentPathRegex": "\\.html$",
        "astTransformers": ["<rootDir>/node_modules/jest-preset-angular/InlineHtmlStripStylesTransformer"]
      }
    }
  }

2。我必须从test.ts文件夹中删除src文件。与此茉莉脚本有关的冲突。

3。我还在tsconfig.app.json

中添加了以下语句
  "compilerOptions": {
    //...
    "types": [
      "jest"
    ]
  }

希望对您有所帮助,我建议您阅读article

答案 1 :(得分:0)

这是快速修复 将tsconfig.spec.json返回到src。 更新jest.config.js:

较新版本已修复此问题。请参考以下线程

https://github.com/briebug/jest-schematic/issues/12