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.