在 Travis 上安装最新版本的 Firefox 并使用 Protractor 运行

Install Latest Version of Firefox on Travis And Run with Protractor

Travis 默认安装 Firefox 31.0esr,但我们希望始终使用最新版本。 reference 这里说应该很简单,但它似乎并没有真正安装,而似乎只是下载了 tar 文件。 Protractor 运行时仍然使用 Firefox 版本 31.0esr。

travis.yml

addons:
  firefox: "latest"

protractor.conf.js

capabilities: {
  'browserName': 'firefox'
}

日志:

初始 Firefox 安装仍然发生:

[34m[1mInstalled Firefox version[0m
firefox 31.0esr

... addon 部分启动并正常下载文件,在 before_install 部分之前如预期的那样:

[0Ktravis_fold:start:install_firefox
[0K$ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-latest&lang=en-US&os=linux64'
[33;1mInstalling Firefox latest[0m
travis_time:start:0dff0345
[0K$ wget -O /tmp/firefox-latest.tar.bz2 $FIREFOX_SOURCE_URL
--2016-01-04 23:29:18--  https://download.mozilla.org/?product=firefox-latest&lang=en-US&os=linux64
Resolving download.mozilla.org (download.mozilla.org)... 52.20.26.65
Connecting to download.mozilla.org (download.mozilla.org)|52.20.26.65|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://download.cdn.mozilla.net/pub/firefox/releases/43.0.3/linux-x86_64/en-US/firefox-43.0.3.tar.bz2 [following]
--2016-01-04 23:29:18--  http://download.cdn.mozilla.net/pub/firefox/releases/43.0.3/linux-x86_64/en-US/firefox-43.0.3.tar.bz2
Resolving download.cdn.mozilla.net (download.cdn.mozilla.net)... 23.0.160.35, 23.0.160.65
Connecting to download.cdn.mozilla.net (download.cdn.mozilla.net)|23.0.160.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 52525181 (50M) [application/x-bzip2]
Saving to: `/tmp/firefox-latest.tar.bz2'


0% [                                       ] 0           --.-K/s              
33% [============>                          ] 17,618,150  84.0M/s              
67% [=========================>             ] 35,556,926  84.7M/s              
100%[======================================>] 52,525,181  83.6M/s   in 0.6s    

2016-01-04 23:29:18 (83.6 MB/s) - `/tmp/firefox-latest.tar.bz2' saved [52525181/52525181]

travis_time:end:0dff0345:start=1451950158289192377,finish=1451950158979104185,duration=689911808
[0Ktravis_fold:end:install_firefox

... 然后当量角器 starts:

[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://172.17.1.120:39697/wd/hub
Browser details:
Platform:  LINUX
Browser Name:  firefox
Browser Version:  31.0 

我有一个潜在的怀疑,即使 Travis 文档说 addon 部分也安装了该文件,但没有迹象表明这确实发生了,所以我认为它不会发生。


为了兴趣,当protractor starts:

时,我们是这样打印系统信息的
this.getBrowserCapabilities  = function() {
  return browser.getCapabilities().then(function (s) {

    var browserCapabilities = {
      browserName: '',
      browserVersion: '',
      platform: ''
    };

    browserCapabilities.platform = s.caps_.platform;
    browserCapabilities.browserName = s.caps_.browserName;
    browserCapabilities.browserVersion = s.caps_.version;

    return browserCapabilities;
  });
};

我自己偶然发现了同样的问题,我可以确认 Travis 只下载指定的 firefox 版本。

这是我在构建脚本中使用下载的版本(在我的示例中为 43.0)所做的。

首先,在您的 .travis.yml 文件中配置插件:

addons:
  firefox: "43.0"

现在在运行测试之前执行这些步骤:

echo "Extracting firefox and setting PATH variable..."
tar -xjf /tmp/firefox-43.0.tar.bz2 --directory /tmp
export PATH="/tmp/firefox:$PATH"
echo "Using firefox version `firefox --version`"

有关工作示例,另请参阅: https://github.com/astehlik/typo3-extension-news_richteaser/blob/master/.travis.yml

我在我的案例中使用了 Selenium,但我想它应该与量角器没有什么不同。