Angularjs 如何让travis在Chrome上执行角度测试(“请设置环境变量Chrome”u BIN)

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

我正在处理一个由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
我遵循了所描述的步骤(基本上使用
生成器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' ]
   }
}