2013-03-08 10 views
12

Nach viel Forschung und Versuch und Irrtum ich folgendes Stack für Frontend BDD Test ausgewählt:Alternative zu CasperJS zur Verwendung mit Cucumber.js

  • Cucumber.js
  • CasperJS (durch SpookyJS)
  • PhantomJS

Ich mag würde CasperJS laufen Warteschlangen und verwenden PhantomJS direkt mit Rückrufe in jedem Schritt (durch phantom-proxy) vermeiden:

@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() 

macht das Ganze logischer und BDD-like.

Darüber hinaus wird SpookyJS keine vollständige API für CasperJS bieten.

Die PhantomJS API ist jedoch ziemlich Low-Level. Gibt es ein anderes Tool, das CasperJS-ähnliche Funktionen (Klicken, Warten auf Elemente usw.) für Node.js bietet, ohne Run Queues zu verwenden?

+0

Ewww ... das Ausführen von PhantomJs aus dem Knoten ist hässlich. Ich spreche von vielen Fehlern damit. Lösung: PhantomJs + Casper kann als eigenständiges System ausgeführt werden und ist viel einfacher zu konfigurieren und anzupassen. Ich kann Ihnen jedoch nicht empfehlen, das Standalone auf der Linux-Version auszuführen - ein weiterer Fehler von mir. Aber die phantom.exe lief von der Windows-Befehlszeile ist ein Geschenk des Himmels. Es funktioniert einfach. Ein Server kann auch in weniger als 20 Zeilen erstellt werden. CasperJS + Ihre eigenen Tests können auch direkt aus den Beispielen auf der CasperJs Beispielseite erstellt und angepasst werden. Sehr empfehlenswert. – FredTheWebGuy

+2

Soweit ich recherchiert habe, funktionierte es gut für Single-Page-Anwendungen, aber nicht für Websites, wo man von Seite zu Seite navigieren muss. Schließlich gingen wir mit dem Testen von Django mit Salat und Ghostdriver. wirkt wie Charme und ist sehr schnell. –

+0

Sie sollten https://github.com/AllegiantAir/cucumber-defaults verwenden –

Antwort

4

Mocha-PhantomJS könnte nur sein, was Sie suchen.

Alternativ hat WebdriverJS Unterstützung für Gurken-Tests.

Wenn Sie mehr Low-Level sein möchten, können Sie mit dem selenium-webdriver direkt versuchen, eine Schnittstelle. Hier ist ein demo auf GitHub.

Viel Glück!

Verwandte Themen