在多个浏览器上运行travis - karma测试?

时间:2016-08-04 22:58:23

标签: karma-runner travis-ci

通常,Karma可以在多个浏览器上运行我的测试。有可能以某种方式在Travis上运行相同的测试吗?

据我所知,Chrome需要对travis配置文件进行一些修改。 https://stackoverflow.com/a/25661593/607033

这些修改会干扰其他浏览器(例如Firefox,Opera,Msie,PhantomJS等)我想在travis上运行吗?

1 个答案:

答案 0 :(得分:1)

我想出了以下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)。业力 - 歌剧发射器有严重的错误,所以我无法使用特拉维斯和Windows。根据插件的github页面,它应该适用于Linux,但我不想花更多的时间在它上面。

因此修改不会相互干扰,因为只有Chrome需要修改,而且这些修改都包含在自定义启动器中。所有非PhantomJS浏览器都需要在.travis.yml中显示和xvfb。

另一个可能的解决方案是使用SauceLabs,但这个测试对我来说并不重要,所以我不想为它支付250美元/年。