【问题标题】:Alternative to CasperJS for use with Cucumber.js与 Cucumber.js 一起使用的 CasperJS 的替代品
【发布时间】:2014-08-08 05:09:39
【问题描述】:

经过大量研究和反复试验,我选择了以下堆栈进行前端 BDD 测试:

  • Cucumber.js
  • CasperJS(通过 SpookyJS)
  • PhantomJS

我想避免 CasperJS 运行队列并直接(通过phantom-proxy)使用 PhantomJS,并在每个步骤中进行回调:

@World = (cb) ->
    @phantom = require "phantom-proxy"
    cb()

@Before (cb) ->
    self = this
    @phantom.create {}, (proxy) ->
        self.proxy = proxy
        self.page = proxy.page
        cb()

@After (cb) ->
    @proxy.end ->
        cb()

@When /^I go to url "([^"]*)"$/, (url, cb) ->
    @page.open url, ->
        cb()

使整体更具逻辑性和 BDD 风格。

此外,SpookyJS 没有为 CasperJS 提供完整的 API。

然而,PhantomJS API 是相当低级的。有没有其他工具可以在不使用运行队列的情况下为 Node.js 提供类似 CasperJS 的功能(单击、等待元素等)?

【问题讨论】:

  • Ewww... 从 Node 中运行 PhantomJs 是丑陋的。我从许多失败中说出来。解决方案:PhantomJs + Casper 可以独立运行,并且更容易配置和自定义。我不建议您在 Linux 版本上运行独立版本,但是 - 我的另一个失败。但是从 Windows 命令行运行的 phantom.exe 是天赐之物。它只是工作。一个服务器也可以用不到 20 行来构建。 CasperJS + 您自己的测试也很容易构建和自定义,直接来自 CasperJs 示例页面提供的示例。强烈推荐。
  • 据我研究,它适用于单页应用程序,但不适用于需要在页面之间导航的网站。最后,我们在 django 中使用生菜和 ghostdriver 进行了测试。实际上就像魅力一样工作并且非常快。

标签: javascript cucumber bdd phantomjs


【解决方案1】:

Mocha-PhantomJS 可能正是您想要的。

另外,WebdriverJS 支持黄瓜测试。

如果您想更底层,可以尝试直接与selenium-webdriver 连接。这是github上的demo

祝你好运!

【讨论】:

    【解决方案2】:

    我推荐Mocha,它有一个cucumber syntax add-on (mocha-cackes) 和/或chai,它是插件chai-jquerychai-timers

    另外Karma 通过插件karma-cucumber 提供黄瓜语法支持。

    Karma 和 Mocha 都允许您使用例如用于 saucelabs 或 browserstack 的启动器在真实设备上运行测试。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2021-11-11
      • 2019-03-21
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多