升级到 Angular 15(从 Angular 14)后运行测试时出错

问题描述 投票:0回答:1

我最近将 Angular 项目从版本 14 升级到版本 15。升级后,当我尝试使用命令 ** ng test --project web-components** 运行测试时,遇到以下错误:

Generating browser application bundles (phase: setup)...
node:internal/process/promises:288
triggerUncaughtException(err, true /* fromPromise */);
^

AssertionError [ERR_ASSERTION]: Compilation cannot be undefined.
    at webpackOptions.entry (.../find-tests-plugin.js:70:38)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

我相信这个错误与 Angular 构建器提供的 find-tests-plugin.js 文件有关,该文件是随 Angular 15 安装的依赖项。

我怀疑 Angular 15 和 @angular-devkit/build-angular 包之间可能不兼容。我已经尝试使用命令 npm install @angular-devkit/build-angular@15--save-dev 将软件包更新到与 Angular 15 兼容的最新版本,但错误仍然存在。

如果您能提供有关如何解决此问题并在 Angular 15 中成功运行测试的任何见解或建议,我将不胜感激。谢谢!

Code error

我知道有一条消息说不能未定义,但在版本 14 中我没有这个问题。该文件是@angular-devkit/build-angular

的一部分

find-tests-plugin.ts

测试用的karma-ci.conf.js是这个(我没有发现任何错误)

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-coverage'),
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('@angular-devkit/build-angular/plugins/karma'),
    ],
    client: {
      clearContext: false,
      captureConsole: false,
      jasmine: {
        random: false,
      },
    },
    reporters: ['dots', 'coverage'],
    coverageReporter: {
      type: 'text-summary',
      dir: '../../coverage/web-components',
      subdir: '.',
      check: {
        emitWarning: false,
        global: {
          statements: 35,
          branches: 22,
          functions: 31,
          lines: 35,
        },
      },
      watermarks: {
        statements: [35],
        branches: [22],
        functions: [31],
        lines: [35],
      },
      reporters: [{ type: 'html' }, { type: 'text-summary' }],
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_ERROR,
    autoWatch: false,
    singleRun: true,
    browsers: ['Chrome'],
    customLaunchers: {
      ChromeHeadlessCI: {
        base: 'ChromeHeadless',
        args: ['--no-sandbox'],
      },
    },
  });
};

angular testing web components
1个回答
0
投票

我也遇到同样的错误,请问你有解决办法吗?

© www.soinside.com 2019 - 2024. All rights reserved.