如何在Jenkins环境变量中为Headless Chrome Without Puppetter配置CHROME_BIN路径

uqzxnwby  于 2022-11-02  发布在  Jenkins
关注(0)|答案(1)|浏览(324)

我正在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,
  });
};
06odsfpq

06odsfpq1#

似乎不可能在karma.conf本身设置这个。相反,尝试将ENV变量CHROME_BIN设置为相应的路径。例如,我们在docker容器中使用Chromium而不是Google Chrome,并设置了

FROM node:16-alpine  
ENV CHROME_BIN="/usr/bin/chromium-browser"
...

在我们的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

相关问题