Comment faire travis exécuter des tests angulaires sur Chrome ("s'il Vous Plaît définir env variable Chrome BIN")

je travaille sur un exemple de projet angulaire généré par yeoman.

Je suis capable d'exécuter des tests Karma localement (j'ai mis la variable système CHROME_BIN pour pointer vers le chrome binaire, mais cela aurait pu être fait de manière plus élégante. Juste un petit travail autour de.)

Cependant, en essayant de produire une construction réussie avec travis, j'obtiens l'erreur suivante:

ERROR [launcher]: Cannot start Chrome
    Can not find the binary google-chrome
    Please set env variable CHROME_BIN

j'ai suivi les étapes décrites ici (utilisant essentiellement generator-travis-ci )

Puis a essayé de le corriger avec ce - a obtenu une autre erreur:

/home/travis/build.sh: line 142: ./.travis/scripts/install_chrome.sh: Permission denied



C'est une application angulaire standard créée avec Yeoman - les choses devraient fonctionner hors de la boîte, alors que la réalité est différente ...

Quelqu'un at-il correctement configuré?


Les versions de logiciels que j'utilise:
user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6

mon travail Travis: https://travis-ci.org/vucalur/editor-yeoman-test

36
demandé sur vucalur 2013-10-08 22:56:34

4 réponses

j'ai peur de dire qu'on ne peut faire tourner que Firefox (parce qu'il est déjà installé dans la VM) et PhantomJS (parce qu'il est portable et sans tête).

ajouter ce qui suit dans votre fichier .travis.yml pour démarrer Firefox:

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

alors vous aurez juste à activer Firefox comme navigateur Karma dans vos configs.

Documentation

18
répondu gustavohenke 2013-10-17 00:11:55

utilisez cette solution pour la faire fonctionner en utilisant la Version Chrome préinstallée dans 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-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);
};
28
répondu Jan Paepke 2015-05-19 20:46:14

basé dans Karma-runner Project issue ( https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076 ) vous devez définir CHROME_BIN variable d'environnement dans votre .travis.yml et configurer un customLauncher dans votre configuration de fichier karma.

Par exemple, votre .Travis.le contenu du fichier yml sera:

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'

et votre karma.conf.js contenu:

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

};

7
répondu Wilson Mendes 2015-01-10 05:12:16

Option 1: APT Addon

vous pouvez faire effectuer à Travis des tests angulaires dans Chrome en utilisant le APT Addon pour installer le paquet google-chrome-stable et l'exécuter sans tête en utilisant 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

Option 2: Chrome Addon

alternativement, si votre environnement de virtualisation est Linux Trusty ou OS X, vous pouvez utiliser le Chrome addon en mode sans tête.

# 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

pour exécuter les tests e2e, mettre à jour protractor.conf.js pour spécifier le chrome sans tête.

capabilities: {
  browserName: 'chrome',

  chromeOptions: {
     args: [ '--headless', '--disable-gpu' ]
   }
}
4
répondu Courtney Pattison 2017-12-05 00:30:16