Как запустить 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 или чем-то еще.
Решения пробовали:
- Следуйте инструкциям по тестированию графического интерфейса и безголового браузера на TravisCI
- Уточнить
xvfb-run
команда в travis.yml ( за этот ответ) - добавлять
--disable-setuid-sandbox
флаг в karma.conf.js ( за этот комментарий)
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
решил проблему для меня. Затем я пошел дальше и полностью удалил команду, и все по-прежнему работало.