sourcetip

Travis가 Chrome에서 각도 테스트를 실행하도록 하는 방법("env 변수 Chrome_BIN을 설정하십시오")

fileupload 2023. 2. 13. 20:38
반응형

Travis가 Chrome에서 각도 테스트를 실행하도록 하는 방법("env 변수 Chrome_BIN을 설정하십시오")

yoman이 생성한 샘플 Angular 프로젝트를 진행하고 있습니다.
로컬에서 카르마 테스트를 실행할 수 있습니다(시스템 변수 설정).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


Yeoman으로 만든 표준 앵글 앱입니다.실제와는 다른데...
정상적으로 설정한 사람이 있습니까?


Software versions I've been using:

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

Travis-CI VM에 프리 인스톨 되어 있는 Cromium Version을 사용해 가동시키려면 , 다음의 솔루션을 사용해 주세요.https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076

.syslog.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

카르마.conf.displays

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);
};

죄송하지만 Firefox(VM에 이미 설치되어 있기 때문에)와 Phantom만 실행할 수 있습니다.JS(휴대성이며 헤드리스이기 때문에)

다음 항목을 에 추가합니다..travis.yml파일을 Firefox 시작 시:

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

그런 다음 설정에서 Karma 브라우저로 Firefox를 활성화하면 됩니다.

문서

Karma-Runner 프로젝트 호(https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076)를 기반으로 설정해주세요.CHROME_BIN환경변수.travis.ymlcustom Launcher를 카르마 파일 설정으로 설정합니다.

예를 들어, .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'];
    }

};

옵션 1: APT 애드온

APT Addon을 사용하여 Chrome에서 Travis가 각도 테스트를 실행하도록 할 수 있습니다.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 애드온

또는 가상화 환경이 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' ]
   }
}

언급URL : https://stackoverflow.com/questions/19255976/how-to-make-travis-execute-angular-tests-on-chrome-please-set-env-variable-chr

반응형