How to make travis execute Angular tests on Chrome ("Please set env variable CHROME_BIN") How to make travis execute Angular tests on Chrome ("Please set env variable CHROME_BIN") angularjs angularjs

How to make travis execute Angular tests on Chrome ("Please set env variable CHROME_BIN")


Use this solution to get it running using the preinstalled Chromium Version in Travis-CI VM: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-runbefore_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);};


I'm afraid to say that you can only run Firefox (because it's already installed in the VM) and PhantomJS (because it's portable and headless).

Add the following into your .travis.yml file to startup Firefox:

before_install:  - "export DISPLAY=:99.0"  - "sh -e /etc/init.d/xvfb start"

Then you'll just have to enable Firefox as a Karma browser in your configs.

Documentation


Based in karma-runner project issue (https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076) You should set CHROME_BIN environment variable in your .travis.yml and configure a customLauncher in your karma file configuration.

For example, your .travis.yml file content will be:

language: node_jsnode_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'

And your karma.conf.js content:

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