如何测试前端 JavaScript 库并与 Travis 集成?

How to test a front-end JavaScript library and integrate with Travis?

我已经尝试过使用 Jasmine 或 Mocha 测试 NodeJS 库,但我不知道如何测试前端项目。我在网上找到了教程,但所有内容都在工作流程中包含一个任务管理器,我想知道如何在没有任务管理器的情况下执行此操作。

我发现以下问题与我要问的问题很接近:

Using Travis-CI for client-side JavaScript libraries?

就我而言,我正在使用 Jasmine 并且已经设置了 Jasmine SpecRunner.html、Jasmine 库和 spec/mylibSpec.js。当我在浏览器上 运行 SpecRunner.html 时,测试通过了。

现在,我如何将它与 Travis 集成,没有 Grunt/Gulp/Brunch/etc?

我听说过 "PhantomJS" 和 "Selenium" 这两个词,我认为这与我想要完成的事情有关。是否有类似 "hello, world" 的带有测试和 Travis 集成的项目可以学习?

Travis 文档 lists three basic ways 完成此操作:

  1. PhantomJS 无头浏览器
  2. 运行使用虚拟显示使用 Firefox 或
  3. 使用 Saucelabs 浏览器 VM 服务

使用 PhantomJS 进行测试是最快的,因为它不模拟显示(不过它仍然允许您创建屏幕截图)。 PhantomJS 带有一个 run-jasmine example.

之后就可以直接执行phantom测试脚本了,只需运行ning

script: phantomjs run-jasmine.js

在您的 .travis.yml 中,没有 G运行t 等构建系统的额外开销。

如果测试您的项目需要一个真正的浏览器 GUI,那么您可以选择 2 或 3。

Saucelabs 浏览器虚拟机具有真正跨浏览器测试的优势;如果您的项目是开源的,他们会提供 free plan. They also provide an in-depth tutorial for your specific use case: Travis + Jasmine + Saucelabs,但是需要 G运行t 才能 运行.