Как запустить Karma с Chrome на TravisCI (Ubuntu 16.04/Xenial)?

Мои тесты недавно начали давать сбои на TravisCI, потому что Google, по-видимому, прекратил поддержку Ubuntu 14.04 (Trusty) в последней версии Chrome. Я обновился до Ubuntu 16.04 (Xenial), но теперь не могу заставить Karma подключиться к Chrome:

11 09 2019 18:15:05.421:INFO [karma-server]: Karma v3.1.4 server started at http://0.0.0.0:9876/
11 09 2019 18:15:05.425:INFO [launcher]: Launching browsers Chrome_travis_ci with concurrency unlimited
11 09 2019 18:15:05.429:INFO [launcher]: Starting browser Chrome
11 09 2019 18:16:05.435:WARN [launcher]: Chrome have not captured in 60000 ms, killing.
11 09 2019 18:16:07.439:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL.
11 09 2019 18:16:09.439:WARN [launcher]: Chrome was not killed by SIGKILL in 2000 ms, continuing.

Мне неясно, связана ли проблема с моей конфигурацией Travis, моей конфигурацией Karma или чем-то еще.

Решения пробовали:

travis.yml:

sudo: required
dist: xenial
services:
  - xvfb
addons:
  apt:
    sources:
      - google-chrome
    packages:
      - google-chrome-stable

language: node_js
node_js:
  - "10"
  - "8"
cache:
  directories: node_modules

before_install:
  - export CHROME_BIN=chromium-browser

before_script:
  - npm rebuild node-sass

script:
  - npm run lint
  - npm run test:ci # Runs: xvfb-run -a karma start
  - npm run build

karma.conf.js:

module.exports = (config) => {
  config.set({
    browsers: [process.env.TRAVIS ? 'Chrome_travis_ci' : 'Chrome'],
    client: {
      captureConsole: false,
    },
    customLaunchers: {
      Chrome_travis_ci: {
        base: 'Chrome',
        flags: ['--no-sandbox', '--disable-setuid-sandbox'],
      },
    },
    files: ['test/index.js'],
    frameworks: ['mocha', 'chai'],
    preprocessors: {
      'test/index.js': ['webpack', 'sourcemap'],
    },
    reporters: ['dots'],
    singleRun: true,
    webpack: Object.assign(webpackConfigBase, {
      devtool: 'inline-source-map',
      mode: 'development',
    }),
    webpackServer: {
      noInfo: true,
    },
  });
};

Любая помощь или предложения приветствуются. Спасибо!

1 ответ

Решение

Решение: удалитеbefore_install конфиг из моего travis.yml полностью.

После дополнительных поисков я, наконец, получил возможное решение с помощью этого комментария:

Сначала я использовал Chromium, но решил перейти на последние версии google-chrome из-за тестов транспортира. Я... [обнаружил], что моя карма использовала (я не знаю как) переменную env хромового бункера, хотя я правильно установил ее с помощью файла докеров!

Единственное решение - переустановить эту переменную env и в моей работе jenkins:

# Set CHROME_BIN because it is incorrect even from Dockerfile
export CHROME_BIN=/usr/bin/google-chrome

Обновление моего travis.yml файл из

before_install:
  - export CHROME_BIN=chromium-browser

к

before_install:
  - export CHROME_BIN=/usr/bin/google-chrome

решил проблему для меня. Затем я пошел дальше и полностью удалил команду, и все по-прежнему работало.

Другие вопросы по тегам