【发布时间】:2019-09-11 18:37:04
【问题描述】:
我最近在 TravisCI 上的测试开始失败,因为 Google 显然放弃了对最新版本 Chrome 的 Ubuntu 14.04 (Trusty) 的支持。我已升级到 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 上关注 instructions for GUI and Headless Browser Testing
- 在 travis.yml (per this answer) 中指定
xvfb-run命令 - 在 karma.conf.js (per this comment) 中添加
--disable-setuid-sandbox标志
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,
},
});
};
任何帮助或建议表示赞赏。谢谢!
【问题讨论】:
标签: karma-runner travis-ci karma-chrome-launcher