После большого количества исследований и проб и ошибок я выбрал следующий стек для 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 без использования очередей запуска?
Ewww ... работает PhantomJs изнутри узла является уродливым. Я говорю из многих недостатков. Решение: PhantomJs + Casper можно запускать как автономный, и гораздо проще настроить и настроить как таковой. Однако я не могу посоветовать вам запустить автономную версию Linux, но еще один сбой с моей стороны. НО phantom.exe побежал из командной строки Windows - это находка. Это просто работает. Сервер может быть построен менее чем в 20 строках. CasperJS + ваши собственные тесты - легкий ветерок для сборки и настройки тоже прямо из примеров, представленных на странице примера CasperJs. Настоятельно рекомендуется. – FredTheWebGuy
Насколько я исследовал, он хорошо работал для одностраничных приложений, но не для сайтов, где нужно перемещаться со страницы на страницу. Наконец мы пошли с тестированием внутри джанго с салатом и призраком. работает как шарм на самом деле и очень быстро. –
Вы должны использовать https://github.com/AllegiantAir/cucumber-defaults –