【发布时间】:2020-12-31 17:14:35
【问题描述】:
我正在尝试通过 Angular CLI 为 CI 无头运行 Karma,但我无法让 Karma 使用我的自定义启动器。
根据this page on the Angular website,我在我的 Karma 配置中使用了customLauncher 属性。但是当我尝试使用 ng test --no-watch --no-progress --browsers=ChromeHeadlessCI 运行测试时,我收到一个错误,提示我的自定义启动器未注册。
01 01 2021 14:10:10.121:INFO [karma-server]: Karma v5.2.3 server started at http://localhost:9876/
01 01 2021 14:10:10.126:INFO [launcher]: Launching browsers ChromeHeadlessCI with concurrency unlimited
01 01 2021 14:10:10.127:ERROR [launcher]: Cannot load browser "ChromeHeadlessCI": it is not registered! Perhaps you are missing some plugin?
01 01 2021 14:10:10.128:ERROR [karma-server]: Error: Found 1 load error
at Server.<anonymous> (C:\Users\trimb\Dropbox\7_Workspaces\weather\node_modules\karma\lib\server.js:213:27)
at Object.onceWrapper (events.js:421:28)
at Server.emit (events.js:327:22)
at Server.EventEmitter.emit (domain.js:467:12)
at emitListeningNT (net.js:1352:10)
at processTicksAndRejections (internal/process/task_queues.js:79:21)
npm ERR! code ELIFECYCLE
这是我的 Karma 配置:
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/weather'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome', 'ChromeHeadlessCI'],
browserDisconnectTolerance: 3,
browserDisconnectTimeout: 10000,
browserNoActivityTimeout: 60000,
customLaunchers: {
ChromeHeadlessCI: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox'
]
}
},
singleRun: true,
restartOnFileChange: true
});
};
这是我通过 npm 从 package.json 运行的命令:
"test::cci": "ng test --no-watch --no-progress --browsers=ChromeHeadlessCI",
我不知道从这里去哪里。这是 Karma 的错误吗?我的配置错误(更有可能是罪魁祸首)?我不知道。所有这些“代码”几乎都是样板文件。
【问题讨论】:
标签: angular-cli karma-jasmine karma-runner