Angularjs 如何让travis在Chrome上执行角度测试(“请设置环境变量Chrome”u BIN)
我正在处理一个由yeoman生成的示例角度项目。Angularjs 如何让travis在Chrome上执行角度测试(“请设置环境变量Chrome”u BIN),angularjs,yeoman,karma-runner,travis-ci,Angularjs,Yeoman,Karma Runner,Travis Ci,我正在处理一个由yeoman生成的示例角度项目。 我可以在本地运行karma测试(我将系统变量CHROME\u BIN设置为指向CHROME二进制,但这本可以用更优雅的方式完成。只需快速解决。) 但是,当尝试使用travis生成成功的构建时,我得到以下错误: ERROR [launcher]: Cannot start Chrome Can not find the binary google-chrome Please set env variable CHROME_BIN
我可以在本地运行karma测试(我将系统变量
CHROME\u BIN
设置为指向CHROME二进制,但这本可以用更优雅的方式完成。只需快速解决。)
但是,当尝试使用travis生成成功的构建时,我得到以下错误:
ERROR [launcher]: Cannot start Chrome
Can not find the binary google-chrome
Please set env variable CHROME_BIN
我遵循了所描述的步骤(基本上使用生成器travis ci
)然后尝试用-得到另一个错误:
/home/travis/build.sh:第142行:./.travis/scripts/install\u chrome.sh:权限被拒绝
这是一款用Yeoman创建的标准angular应用程序-一切都应该开箱即用,而现实则不同…
有人成功配置了吗
我一直在使用的软件版本:
user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6
我的Travis工作:我恐怕只能运行Firefox(因为它已经安装在VM中)和PhantomJS(因为它是可移植的、无头的) 将以下内容添加到
.travis.yml
文件中以启动Firefox:
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
然后,您只需在配置中启用Firefox作为Karma浏览器
使用此解决方案,使用Travis CI VM中预装的Chromium版本使其运行: 特拉维斯·伊梅尔先生 karma.conf.js
根据karma runner项目问题(),您应该在
.travis.yml
中设置CHROME\u BIN
环境变量,并在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'];
}
};
选项1:APT插件
您可以让Travis在Chrome中执行角度测试,方法是使用安装google Chrome stable
包,并使用Xvfb无头运行
# Set language
language: node_js
# Set version of node
node_js:
- node
# Set DISPLAY for Xvfb
env:
- DISPLAY=:99.0
# Use APT Addon to install Chrome
addons:
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
# Start Xvfb so you can run headless Chrome
before_install:
- sh -e /etc/init.d/xvfb start
# Install packages
install:
- npm install
# Run tests in continuous integration mode
script:
- ng test --single-run
选项2:Chrome插件
或者,如果您是Linux Trusty或OS X,您可以在无头模式下使用Chrome插件
# Use a trusty version of linux
dist: trusty
# Set language
language: node_js
# Set version of node
node_js:
- node
# Install Chrome addon
addons:
- chrome: stable
# Install packages
install:
- npm install
# Run tests in continuous integration mode with headless chrome
script:
- karma start --single-run --browsers ChromeHeadless
要运行e2e测试,请更新dragrator.conf.js
以指定无头chrome
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: [ '--headless', '--disable-gpu' ]
}
}
使用Karma的Firefox启动器文档:这个答案需要有解决方案和实施步骤,而不是答案的链接。该链接将来可能会中断。由于travis ci VM对OpenVZ的更改,该解决方案似乎不再有效。
# Use a trusty version of linux
dist: trusty
# Set language
language: node_js
# Set version of node
node_js:
- node
# Install Chrome addon
addons:
- chrome: stable
# Install packages
install:
- npm install
# Run tests in continuous integration mode with headless chrome
script:
- karma start --single-run --browsers ChromeHeadless
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: [ '--headless', '--disable-gpu' ]
}
}