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

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

我正在Angular项目上工作,我可以在我的Windows本地机器上运行karma和Jasmin测试,但Jenkins说,在您的平台上没有二进制的ChromeHeadless浏览器,所以问题是如何在Jenkins配置中配置ChromeHeadless。
我知道,我可以通过添加 puppet 师到我的业力会议,但我不想在我的项目使用 puppet 师。
你能告诉我如何不使用推杆解决这个问题吗?
这是我因果报应会议:

  1. // Karma configuration file, see link for more information
  2. // https://karma-runner.github.io/1.0/config/configuration-file.html
  3. //process.env.CHROME_BIN = require('puppeteer').executablePath()
  4. module.exports = function (config) {
  5. config.set({
  6. basePath: '',
  7. frameworks: ['jasmine', '@angular-devkit/build-angular'],
  8. plugins: [
  9. require('karma-jasmine'),
  10. require('karma-chrome-launcher'),
  11. require('karma-jasmine-html-reporter'),
  12. require('karma-coverage'),
  13. require('@angular-devkit/build-angular/plugins/karma')
  14. ],
  15. client: {
  16. jasmine: {
  17. // you can add configuration options for Jasmine here
  18. // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
  19. // for example, you can disable the random execution with `random: false`
  20. // or set a specific seed with `seed: 4321`
  21. },
  22. clearContext: false // leave Jasmine Spec Runner output visible in browser
  23. },
  24. jasmineHtmlReporter: {
  25. suppressAll: true // removes the duplicated traces
  26. },
  27. coverageReporter: {
  28. dir: require('path').join(__dirname, './coverage'),
  29. subdir: '.',
  30. reporters: [
  31. { type: 'html' },
  32. { type: 'text-summary' },
  33. { type: 'lcovonly' }
  34. ]
  35. },
  36. reporters: ['progress', 'kjhtml'],
  37. port: 9876,
  38. colors: true,
  39. logLevel: config.LOG_INFO,
  40. autoWatch: true,
  41. browsers: ['ChromeHeadlessNoSandbox'],
  42. customLaunchers: {
  43. ChromeHeadlessNoSandbox: {
  44. base: 'ChromeHeadless',
  45. flags: ['--no-sandbox']
  46. }
  47. },
  48. browserNoActivityTimeout: 1000000000,
  49. browserDisconnectTimeout : 1000000000,
  50. });
  51. };
06odsfpq

06odsfpq1#

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

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

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

相关问题