2013-03-08 9 views
12

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?

+0

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

+2

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. –

+0

Powinieneś użyć https://github.com/AllegiantAir/cucumber-defaults –

Odpowiedz

4

Mocha-PhantomJS może być po prostu tym, czego szukasz.

Alternatywnie, WebdriverJS ma wsparcie dla testów ogórka.

Jeśli chcesz być na niższym poziomie, możesz spróbować połączyć się bezpośrednio z urządzeniem selenium-webdriver. Oto demo na github.

Powodzenia!

Powiązane problemy