2016-08-04 112 views

回答

0

我想出了以下karma.conf.js文件:

module.exports = function (config) { 
    var options = { 
     plugins: [ 
      "karma-browserify", 
      "karma-chrome-launcher", 
      "karma-firefox-launcher", 
      "karma-ie-launcher", 
      //"karma-opera-launcher", 
      "karma-phantomjs-launcher", 
      "karma-mocha" 
     ], 
     ... 
     browsers: [ 
      "Chrome", 
      "Firefox", 
      "IE", 
      //"Opera", 
      "PhantomJS" 
     ] 
    }; 

    if (process.env.TRAVIS) { 
     options.customLaunchers = { 
      Chrome_travis_ci: { 
       base: 'Chrome', 
       flags: ['--no-sandbox'] 
      } 
     }; 
     options.browsers = [ 
      "Chrome_travis_ci", 
      "Firefox", 
      //"IE", 
      //"Opera", 
      "PhantomJS" 
     ]; 
    } 

    config.set(options); 
}; 

及以下.travis.yml:

language: node_js 
node_js: 
    - "5" 
before_install: 
    - export CHROME_BIN=chromium-browser 
    - export DISPLAY=:99.0 
    - sh -e /etc/init.d/xvfb start 

中的Internet Explorer是Windows環境下唯一的工作,所以它不被Travis支持(因爲它使用Linux)。 karma-opera-launcher有嚴重的錯誤,所以我無法在Travis和Windows上使用它。根據插件的github頁面,它應該在Linux上工作,但我不想花費更多時間。

所以這些修改不會相互干擾,因爲只有Chrome需要修改,而且這些修改是由自定義啓動程序包含的。所有非PhantomJS瀏覽器都需要在.travis.yml中顯示和xvfb。

另一種可能的解決方案是使用SauceLabs,但這種測試對我來說並不重要,所以我不想爲此支付250美元/年。

相關問題