2016-08-04 60 views
0

Normalerweise ist es mit Karma möglich, meine Tests in mehreren Browsern auszuführen. Ist es möglich, die gleichen Tests auf Travis durchzuführen?Führen Sie Travis - Karma Tests auf mehreren Browsern aus?

Soweit ich weiß, benötigt Chrome einige Änderungen an der Travis-Konfigurationsdatei. https://stackoverflow.com/a/25661593/607033

Interferieren diese Änderungen mit anderen Browsern (z. B. Firefox, Opera, Msie, PhantomJS usw.) Ich möchte auf Travis laufen?

Antwort

0

Ich habe mit der folgenden karma.conf.js Datei kommen:

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

und der folgenden .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 

Der Internet Explorer nur von Windows-Umgebungen arbeiten, Es wird also nicht von Travis unterstützt (weil es Linux verwendet). Der Karma-Opera-Launcher hat schwerwiegende Fehler, daher konnte ich ihn nicht mit Travis und Windows benutzen. Laut der github-Seite des Plugins sollte es unter Linux funktionieren, aber ich wollte nicht mehr Zeit damit verbringen.

So stören sich die Änderungen nicht gegenseitig, weil nur Chrome Änderungen erfordert und diese von einem benutzerdefinierten Startprogramm enthalten sind. Alle Nicht-PhantomJS-Browser benötigen Anzeige und xvfb in der .travis.yml.

Eine andere mögliche Lösung wäre die Verwendung von SauceLabs, aber diese Tests sind für mich nicht kritisch, deshalb möchte ich nicht 250 $/y dafür bezahlen.