通常Karma可以在多个浏览器上运行我的测试。有可能以某种方式对特拉维斯进行同样的测试吗?
据我所知,Chrome需要对travis配置文件进行一些修改。https://stackoverflow.com/a/25661593/607033
这些修改是否会干扰我想在travis上运行的其他浏览器(例如Firefox、Opera、Msie、PhantomJS等(?
我提出了以下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(。因果报应歌剧发射器有严重的错误,所以我无法在Travis和Windows上使用它。根据插件的github页面,它应该在Linux上运行,但我不想在它上花更多的时间。
因此,修改不会相互干扰,因为只有Chrome需要修改,而这些修改是由自定义启动器包含的。所有非PhantomJS浏览器都需要.travis.yml.中的display和xvfb
另一个可能的解决方案是使用SauceLabs,但这个测试对我来说并不重要,所以我不想为此支付250美元/年。