我正在研究一个由自耕农生成的Angular项目示例
我能够在本地运行业力测试(我设置系统变量CHROME_BIN
指向铬二进制,但这可以以更优雅的方式完成。只需快速解决。)
但是,当尝试使用travis生成成功的构建时,我收到以下错误:
ERROR [launcher]: Cannot start Chrome
Can not find the binary google-chrome
Please set env variable CHROME_BIN
我已按照here描述的步骤(基本上使用generator-travis-ci
)了
然后尝试用this修复它 - 又出现了另一个错误:
/home/travis/build.sh: line 142: ./.travis/scripts/install_chrome.sh: Permission denied
这是一个由Yeoman创建的标准角度应用程序 - 事情应该开箱即用,而现实则不同......
有没有人成功配置过它?
<小时/> 我一直在使用的软件版本:
user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6
答案 0 :(得分:29)
使用此解决方案,使用Travis-CI VM中预先安装的Chromium版本使其运行: https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076
node_js:
- "0.10"
script: node_modules/karma/bin/karma start test/karma.conf.js --single-run
before_install:
- export CHROME_BIN=chromium-browser
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
module.exports = function(config) {
var configuration = {
/* ... */
// start these browsers
browsers: ['Chrome', 'ChromeCanary'],
customLaunchers: {
Chrome_travis_ci: {
base: 'Chrome',
flags: ['--no-sandbox']
}
},
/* ... */
};
if(process.env.TRAVIS){
configuration.browsers = ['Chrome_travis_ci'];
}
config.set(configuration);
};
答案 1 :(得分:18)
我害怕说你只能运行Firefox(因为它已经安装在VM中)和PhantomJS(因为它是便携式和无头的)。
将以下内容添加到.travis.yml
文件中以启动Firefox:
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
然后你必须在你的配置中启用Firefox作为Karma浏览器。
答案 2 :(得分:7)
基于karma-runner项目问题(https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076)您应该在CHROME_BIN
中设置.travis.yml
环境变量,并在您的karma文件配置中配置customLauncher。
例如,您的.travis.yml文件内容将为:
language: node_js
node_js:
- '0.10'
before_script:
- 'export CHROME_BIN=chromium-browser'
- 'export DISPLAY=:99.0'
- 'sh -e /etc/init.d/xvfb start'
- 'npm install -g bower karma grunt-cli jshint'
- 'npm install'
- 'bower install'
以及您的karma.conf.js
内容:
module.exports = function(config) {
config.set({
// ... your default content
// This is the new content for your travis-ci configuration test
// Custom launcher for Travis-CI
customLaunchers: {
Chrome_travis_ci: {
base: 'Chrome',
flags: ['--no-sandbox']
}
},
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: true
});
if(process.env.TRAVIS){
config.browsers = ['Chrome_travis_ci'];
}
};