我正在Angular项目上工作,我可以在我的Windows本地机器上运行karma和Jasmin测试,但Jenkins说,在您的平台上没有二进制的ChromeHeadless浏览器,所以问题是如何在Jenkins配置中配置ChromeHeadless。
我知道,我可以通过添加 puppet 师到我的业力会议,但我不想在我的项目使用 puppet 师。
你能告诉我如何不使用推杆解决这个问题吗?
这是我因果报应会议:
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
//process.env.CHROME_BIN = require('puppeteer').executablePath()
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'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
jasmine: {
// you can add configuration options for Jasmine here
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
// for example, you can disable the random execution with `random: false`
// or set a specific seed with `seed: 4321`
},
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
jasmineHtmlReporter: {
suppressAll: true // removes the duplicated traces
},
coverageReporter: {
dir: require('path').join(__dirname, './coverage'),
subdir: '.',
reporters: [
{ type: 'html' },
{ type: 'text-summary' },
{ type: 'lcovonly' }
]
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
browserNoActivityTimeout: 1000000000,
browserDisconnectTimeout : 1000000000,
});
};
1条答案
按热度按时间06odsfpq1#
似乎不可能在karma.conf本身设置这个。相反,尝试将ENV变量CHROME_BIN设置为相应的路径。例如,我们在docker容器中使用Chromium而不是Google Chrome,并设置了
在我们的DOCKERFILE中。这个路径是我们使用的alpine基础映像的特定路径。因此,在您的情况下,路径可能会有所不同。
或者,如果你从Intellij运行karma,添加相同的env变量到你的karma环境中,如下所述:https://intellij-support.jetbrains.com/hc/en-us/community/posts/5991195077010-CHROME-BIN-not-set-for-single-karma-test-run