我最近将 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 中成功运行测试的任何见解或建议,我将不胜感激。谢谢!
我知道有一条消息说不能未定义,但在版本 14 中我没有这个问题。该文件是@angular-devkit/build-angular
的一部分测试用的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'],
},
},
});
};
我也遇到同样的错误,请问你有解决办法吗?