如何让travis在Chrome上执行Angular测试("请设置env变量CHROME_BIN")

vuc*_*lur 37 travis-ci angularjs yeoman karma-runner

我正在研究由yeoman生成的示例Angular项目.
我能够在本地运行业力测试(我设置系统变量CHROME_BIN指向铬二进制,但这可以以更优雅的方式完成.只需快速解决.)

但是,当尝试使用travis生成成功的构建时,我收到以下错误:

ERROR [launcher]: Cannot start Chrome
    Can not find the binary google-chrome
    Please set env variable CHROME_BIN
Run Code Online (Sandbox Code Playgroud)

我已经按照所描述的步骤在这里 (基本上使用generator-travis-ci)
然后试图与修复这个 -得到了另一个错误:
/home/travis/build.sh: line 142: ./.travis/scripts/install_chrome.sh: Permission denied


这是一个用Yeoman创建的标准角度应用程序 - 事情应该是开箱即用的,而现实是不同的......
有没有人成功配置它?


我一直在使用的软件版本:

user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6
Run Code Online (Sandbox Code Playgroud)

我的Travis工作:https://travis-ci.org/vucalur/editor-yeoman-test

Jan*_*pke 30

使用此解决方案使用Travis-CI VM中预安装的Chromium版本运行它: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
Run Code Online (Sandbox Code Playgroud)

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);
};
Run Code Online (Sandbox Code Playgroud)


gus*_*nke 18

我不敢说你只能运行Firefox(因为它已经安装在VM中)和PhantomJS(因为它是便携式和无头的).

将以下内容添加到您的.travis.yml文件中以启动Firefox:

before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
Run Code Online (Sandbox Code Playgroud)

然后你只需要在你的配置中启用Firefox作为Karma浏览器.

文档


小智 7

基于karma-runner项目问题​​(https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076)您应该在您的karma文件配置中设置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'
Run Code Online (Sandbox Code Playgroud)

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

};
Run Code Online (Sandbox Code Playgroud)