Alternative zu CasperJS für die Verwendung mit Cucumber.js
Nach viel Forschung und Versuch und Irrtum habe ich gewählt, die die folgenden Stapel für den Frontend-BDD-Tests:
- Cucumber.js
- CasperJS (durch SpookyJS)
- PhantomJS
Ich möchte vermeiden, CasperJS führen Sie Warteschlangen und nutzen PhantomJS direkt (durch phantom-proxy) mit callbacks in jedem Schritt:
@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()
machen das ganze logischer und BDD-wie.
Darüber hinaus SpookyJS nicht bieten eine vollständige API für CasperJS.
Dem PhantomJS-API, jedoch ist ziemlich low-level. Gibt es andere Hilfsmittel, die Ihnen CasperJS-Funktionen (Klick, warten für die Elemente, etc) für Node.js ohne mit der run-queues?
- Ewww... läuft PhantomJs innerhalb von Knoten ist hässlich. Ich spreche aus vielen Mängel mit, die. Lösung: PhantomJs + Casper kann sein lief als standalone, und ist viel einfacher zu konfigurieren und anpassen, als solche. Ich kann nicht beraten Sie führen eigenständig auf die Linux-version, die allerdings ein weiterer Fehler auf meinem Teil. ABER die phantom.exe lief von der windows-Befehlszeile ist ein Geschenk des Himmels. Es funktioniert einfach. Ein server gebaut werden kann, in weniger als 20 Zeilen, wie gut. CasperJS + eigene tests sind kinderleicht aufzubauen und passen Sie auch, direkt von der Beispiele in CasperJs Beispiel-Seite. Sehr zu empfehlen.
- Soweit ich recherchiert, es funktionierte gut für single-page-apps, aber nicht für Webseiten, denen man braucht, um von Seite zu Seite navigieren. Schließlich gingen wir mit Tests innerhalb django mit Salat und ghostdriver. funktioniert wie Charme und ist sehr schnell.
- Sie sollten github.com/AllegiantAir/cucumber-defaults
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mokka-PhantomJS könnte genau das sein was du suchst.
Alternativ WebdriverJS hat die Unterstützung für Gurken-tests.
Wenn Sie möchten, um mehr low-level können Sie versuchen, die Verbindung mit dem selenium-webdriver direkt. Hier ist ein demo auf github.
Glück!
Ich würde empfehlen, Mokka die eine Gurke syntax add-on (Mokka-cackes) und/oder chai und plugins chai-jquery und chai-Timer.
Auch Karma kommt mit Gurken-syntax-Unterstützung durch das plugin karma-Gurke.
Sowohl Karma und Mocha ermöglichen es Ihnen, Ihre tests an echten Geräten mit Trägerraketen für saucelabs oder browserstack zum Beispiel.
Hoffe, es hilft.