运行 travis - 在多个浏览器上进行业力测试?

Run travis - karma tests on multiple browsers?

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

据我所知Chrome 需要对 travis 配置文件进行一些修改。

这些修改是否会干扰其他浏览器(例如 Firefox、Opera、Msie、PhantomJS 等)我想 运行 on travis?

我想出了以下 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 美元/年。