如何让travis在Chrome上执行Angular测试(“请设置env变量CHROME_BIN”)

时间:2013-10-08 18:56:35

标签: angularjs yeoman karma-runner travis-ci

我正在研究一个由自耕农生成的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

我的Travis工作:https://travis-ci.org/vucalur/editor-yeoman-test

3 个答案:

答案 0 :(得分:29)

使用此解决方案,使用Travis-CI VM中预先安装的Chromium版本使其运行: https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076

.travis.yml

  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

karma.conf.js

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浏览器。

Documentation

答案 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'];
    }

};