Подтвердить что ты не робот

Как заставить travis выполнить Angular тесты в Chrome ( "Пожалуйста, установите переменную env CHROME_BIN" )

Я работаю над образцом проекта Angular, созданным yeoman.
Я могу запускать тесты кармы локально (я установил системную переменную CHROME_BIN, чтобы указать на хром-бинарник, но это могло быть сделано более элегантным способом. Просто быстро обходиться.)

Однако, когда вы пытаетесь создать успешную сборку с помощью travis, я получаю следующую ошибку:

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

Я выполнил описанные ниже шаги (в основном используя generator-travis-ci)
Затем попытался исправить его с помощью этого - получил еще одну ошибку:
/home/travis/build.sh: line 142: ./.travis/scripts/install_chrome.sh: Permission denied


Это стандартное приложение Angular, созданное с Йоменом - все должно работать "из коробки", тогда как реальность различна...
Кто-нибудь успешно настроил его?


Программные версии, которые я использовал:
[email protected]:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6

моя работа Трэвиса: https://travis-ci.org/vucalur/editor-yeoman-test

4b9b3361

Ответ 1

Я боюсь сказать, что вы можете запускать только Firefox (потому что он уже установлен в виртуальной машине) и PhantomJS (потому что он переносимый и безголовый).

Добавьте в свой файл .travis.yml следующее: Firefox:

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

Затем вам просто нужно включить Firefox в качестве браузера Karma в своих конфигурациях.

Документация

Ответ 2

Используйте это решение, чтобы запустить его с помощью предустановленной версии Chromium в 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);
};

Ответ 3

Основываясь на проблеме проекта карма-бегуна (https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076) Вы должны установить переменную среды CHROME_BIN в .travis.yml и настроить 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'];
    }

};

Ответ 4

Вариант 1: APT Addon

Вы можете сделать тесты Travis Angular в Chrome, используя APT Addon, чтобы установить пакет 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 Addon

В качестве альтернативы, если ваша среда виртуализации - это 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, обновите protractor.conf.js, чтобы указать безглавый хром.

capabilities: {
  browserName: 'chrome',

  chromeOptions: {
     args: [ '--headless', '--disable-gpu' ]
   }
}