2013-03-08 2 views
12

После большого количества исследований и проб и ошибок я выбрал следующий стек для Frontend BDD тестирования:Альтернатива CasperJS для использования с Cucumber.js

  • Cucumber.js
  • CasperJS (через SpookyJS)
  • PhantomJS

Я хотел бы избежать CasperJS запуска очередей и использовать PhantomJS непосредственно (через phantom-proxy) с обратных вызовов на каждом шагу:

@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 не предоставляет полный API для CasperJS.

API PhantomJS, однако, довольно низкоуровневый. Есть ли какой-либо другой инструмент, который предоставляет функции, подобные CasperJS (щелчок, ожидание элементов и т. Д.) Для Node.js без использования очередей запуска?

+0

Ewww ... работает PhantomJs изнутри узла является уродливым. Я говорю из многих недостатков. Решение: PhantomJs + Casper можно запускать как автономный, и гораздо проще настроить и настроить как таковой. Однако я не могу посоветовать вам запустить автономную версию Linux, но еще один сбой с моей стороны. НО phantom.exe побежал из командной строки Windows - это находка. Это просто работает. Сервер может быть построен менее чем в 20 строках. CasperJS + ваши собственные тесты - легкий ветерок для сборки и настройки тоже прямо из примеров, представленных на странице примера CasperJs. Настоятельно рекомендуется. – FredTheWebGuy

+2

Насколько я исследовал, он хорошо работал для одностраничных приложений, но не для сайтов, где нужно перемещаться со страницы на страницу. Наконец мы пошли с тестированием внутри джанго с салатом и призраком. работает как шарм на самом деле и очень быстро. –

+0

Вы должны использовать https://github.com/AllegiantAir/cucumber-defaults –

ответ

4

Mocha-PhantomJS может быть только то, что вы ищете.

В качестве альтернативы WebdriverJS имеет поддержку для испытаний огурца.

Если вы хотите быть более низким, вы можете напрямую связаться с selenium-webdriver. Вот demo на github.

Удачи вам!

1

Я бы порекомендовал Mocha, который имеет cucumber syntax add-on (mocha-cackes) и/или chai и его плагины chai-jquery и chai-timers.

Также Karma поставляется с поддержкой синтаксиса огурца через плагин karma-cucumber.

Как карма, так и мокка позволяют вам проводить тесты против реальных устройств, используя пусковые установки для saucelabs или браузера, например.

Надеюсь, это поможет.

Смежные вопросы