我最近在 TravisCI 上的测试开始失败,因为谷歌显然放弃了对最新版本 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 上的 GUI 和无头浏览器测试的说明进行操作
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
业力.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,
},
});
};
任何帮助或建议表示赞赏。谢谢!