Po wielu badań i prób i błędów wybrałem następujące stos dla Frontend BDD testów:Alternatywa CasperJS do użytku z Cucumber.js
- Cucumber.js
- CasperJS (poprzez SpookyJS)
- PhantomJS
to do uniknięcia CasperJS kolejek i uruchamiania bezpośrednio użyć PhantomJS (poprzez phantom-proxy) z wywołań zwrotnych na poszczególnych etapach:
@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()
czyniąc całość bardziej logiczną i podobną do BDD.
Dodatkowo SpookyJS nie zapewnia pełnego API dla CasperJS.
Interfejs API PhantomJS jest jednak dość niski. Czy istnieje inne narzędzie zapewniające funkcjonalność podobną do CasperJS (kliknięcie, oczekiwanie na elementy itp.) Dla Node.js bez użycia kolejek uruchamiania?
Ewww ... uruchamianie PhantomJs z poziomu Node jest brzydkie. Mówię o tym z wielu wad. Rozwiązanie: PhantomJs + Casper może być uruchamiany jako samodzielny i dużo łatwiejszy do skonfigurowania i dostosowania jako taki. Nie mogę jednak zalecić samodzielnego uruchamiania wersji na Linuksa - kolejna awaria z mojej strony. ALE program phantom.exe uruchomiony z poziomu wiersza poleceń systemu Windows to dar niebios. Po prostu działa. Serwer można zbudować w mniej niż 20 liniach. CasperJS + twoje własne testy są łatwe do zbudowania i dostosowania również z przykładów podanych na przykładowej stronie CasperJs. Wysoce polecany. – FredTheWebGuy
Jeśli chodzi o moje badania, sprawdził się w przypadku aplikacji z jedną stroną, ale nie w witrynach, w których trzeba nawigować między stronami. W końcu poszliśmy z testowaniem wewnątrz django z sałatą i ghostdriverem. działa jak urok i jest bardzo szybki. –
Powinieneś użyć https://github.com/AllegiantAir/cucumber-defaults –