【问题标题】:Is there a capybara for Node.js?Node.js 有水豚吗?
【发布时间】:2011-11-27 08:34:23
【问题描述】:

有谁知道Node.js有没有类似capybara的东西?

【问题讨论】:

  • 投票结束作为工具记录

标签: node.js selenium automated-tests capybara


【解决方案1】:

Zombie怎么样?

僵尸.js

使用 Node.js 进行快速、无头的全栈测试

如果你要编写一个速度极快的无头浏览器,你怎么能不把它叫做 Zombie Zombie。

Zombie.js 是一个轻量级框架,用于在模拟环境中测试客户端 JavaScript 代码。无需浏览器。

【讨论】:

  • 这样的话,你应该看看phantomjs...我问这个问题的原因是capybara是一个通用框架,用于其他web验收测试系统,如Selenium、htmlunit等。跨度>
  • 我想目前,节点没有像水豚这样的东西,所以我奖励你积分 - 感谢你的输入!
【解决方案2】:

我是一名由 Rails 转为节点的开发人员,我一直在寻找 JS 世界中获胜的 RSpec/Capybara 组合的类比。这是我找到的最喜欢的。

  • Mocha - 用于运行异步测试
  • Chai - 用于断言
  • Request - 用于处理 HTTP 请求/响应
  • Cheerio - 用于从响应中选择 HTML 元素

这里是more involved post,介绍如何设置此堆栈,包括连续测试运行。

测试愉快!

【讨论】:

  • 我现在正在测试一个类似的堆栈。运行起来非常简单,但我找不到一种很好的方法来针对渲染的 javascript 执行 Cheerio 抓取,就像在单页应用程序中一样。祝你好运。
【解决方案3】:

Cucumber-JS 是最接近 Javascript 的: https://github.com/cucumber/cucumber-js

您可以使用该库来驱动 JS、headless 和 Selenium,但是它缺少每个不同“世界”之间的“capybara”共享 API。 http://skillsmatter.com/podcast/agile-testing/cucumber-js-cuke-up-your-javascript 有很好的演讲,https://github.com/jbpros/cukecipes 支持 github 代码

我希望当 phantomjs webdriver 有线协议完成时 (https://github.com/detro/ghostdriver) 并且如果 Soda/Selenium (https://github.com/LearnBoost/soda) 能够驱动它,那么无头测试将能够通过 Selenium 自动化,从而绕过需要水豚。

【讨论】:

    【解决方案4】:

    jelly.io:

    Jellyfish 是一个 Node 项目,旨在让您轻松启动不同的 JavaScript 环境并运行您的代码。

    【讨论】:

      【解决方案5】:

      喂!

      我创建了一个库来帮助使用 cucumber-js。它为您提供可调用的步骤和解析的参数。这适用于黄瓜,不能代替它。

      快速功能:

      • 同步步骤定义,不再有回调;
      • 从步骤定义中调用其他步骤;
      • 解析数组、对象和小数等值;

      https://github.com/hackhat/cucumberry

      希望你觉得它有用(:

      【讨论】:

        【解决方案6】:

        我们在 JS 中创建了一个完整的验收测试解决方案

        http://xolv.io/products/chimp

        它使用 CucumberJS(即将推出 Mocha/Jasmine)来推动您的验收测试

        • 下载并启动 Phantom / Selenium
        • 将预配置的 Webdriver.IO 实例注入到测试上下文中
        • 包括request npm 库(用于 REST) 您选择的断言库(Chai / Jasmine-expect)
        • 使用纤程进行同步测试(无回调地狱/承诺混淆)
        • 适用于 SauceLabs / BrowserStacks 等
        • 支持外部测试,使用监视模式持续运行您使用@focus 标记的场景
        • 开箱即用支持 CI,并在 Circle/Codeship/Travis 上进行了测试(使用无头 Chrome/Firefox)

        它还不能让你喝咖啡

        【讨论】:

          【解决方案7】:

          在验收测试方面,我大量使用 Capybara for Rails。我对这里列出的 NodeJS 替代方案不满意。您将需要一个流行的 Web 自动化实用程序,以及针对特定功能的场景进行断言的能力。

          当您想到 Node、Phantom 和 Casper 中的 Web 自动化时,它已经死了。那么,目前正在崛起的是什么? 木偶师。几年前我开始使用 Puppeteer,当时它还处于测试阶段,关于它的文章和 SO 帖子很少。但现在 Puppeteer 正在成为 Node.js 中 Web 自动化的领导者。但是,您不能在 Puppeteer 中断言您对测试框架的期望。

          但这并不能阻止我们将测试工具集成到 Puppeteer 网络自动化中。我找到了一些使用 jest 作为测试工具的解决方案。

          const puppeteer = require('puppeteer');
          describe('Open Website', () => {
            var browser, page;
            var url = 'https://website.io'
            beforeEach (async () => {
              browser = await puppeteer.launch({ headless: false });
              page = await browser.newPage();
            })
          
          afterEach (() => {
              browser.close()
            })
          
          test('Title == Website Tools', async () => {
              await page.goto(url);
              const title = await page.title();
              expect(title).toBe("Website Tools");
            });
          

          【讨论】:

            【解决方案8】:

            【讨论】:

            • 不,我说的是通用网络验收测试框架。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-04-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多