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