在 AppVeyor 上使用最新的 Firefox 和 Chrome 进行 JavaScript 测

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

不在主要消费者浏览器上测试就构建 Web 应用程序是疯狂的。幸运的是,我们有一些跨浏览器测试服务,例如 sauce labs browserstack 等等。不过,要快速检查最新稳定版的 google chrome mozilla firefox ,没有什么比得上 appveyor 提供的出色服务了。

作为托管的持续集成服务,appveyor 在 windows 上运行您的应用程序(及其测试),更准确地说是 microsoft windows server 2012 r2。这意味着,我们可以访问广泛使用的网络浏览器:Internet Explorer、Firefox 和 Chrome。由于平台集成,即 11 始终可用。通常,firefox 和 chrome 会落后几个版本。为了解决这个问题,我们总是可以在运行测试之前安装这两个浏览器的最新稳定版本。

如果你想继续,我在 github.com/ariya/karma-appveyor 准备了一个简单的项目。克隆存储库以了解它在做什么。由于它设计得非常简单,它只包含一个测试,使用 mocha 单元测试库编写并使用 karma 测试运行器执行:


 describe("sqrt", function() {
  it("should compute the square root of 4 as 2", function() {
    assert.equal(math.sqrt(4), 2);
  });
});

测试本身可以通过运行 npm test 来执行。它将启动 karma 以在您系统上可用的以下浏览器中运行测试:chrome、firefox、safari 和 ie。使用名为 karma-detect-browsers 的 非常好的 karma 插件检测可用的浏览器。如果你在 os x 上,你得到的是这样的:

要在 appveyor 上运行它,首先我们需要制作如下所示的配置文件:


 describe("sqrt", function() {
  it("should compute the square root of 4 as 2", function() {
    assert.equal(math.sqrt(4), 2);
  });
});

现在转到 appveyor.com ,使用你的 github 帐户登录,创建一个新项目并选择你的存储库。明确要求一个新的构建,一段时间后,appveyor 正在 酝酿构建, 如下所示:

它正在使用 ie 11、firefox 30 和 chrome 41 运行测试。最后两个浏览器已经过时了。我们如何强制升级?

巧克力 来拯救! chocolatey 建立在 nuget 之上,有助于静默安装许多 Windows 应用程序(因此它被称为“Windows 的 apt-get”)。我们需要调整我们的 appveyor.yml 以便 chocolatey 安装 firefox googlechrome 包。当然,如果您生活在边缘,请随意将 firefox beta chrome beta 添加到混合物中。


 describe("sqrt", function() {
  it("should compute the square root of 4 as 2", function() {
    assert.equal(math.sqrt(4), 2);
  });
});

在 appveyor 上运行构建,这次构建日志会 有所不同

好了:我们有 ie 11、firefox 40 和 chrome 45 运行我们的测试!