Wie ist der richtige Umgang mit dem Page Objects-Modell zum Schreiben von Winkelmesser-E2E-Tests für AngularJS? Ich habe das Gefühl, ich sollte sie in separate Dateien (wie homepage.js, page2.js, etc) schreiben und dann irgendwie in die Spezifikationen wie Module nach Bedarf aufnehmen. Ich weiß jedoch nicht, wie ich sie injizieren soll. Würde mich über Vorschläge freuen. Vielen Dank!Seitenobjekte im AngularJS-Winkelmesser E2E-Test
Antwort
Behalten Sie sie in separaten Dateien, und verwenden Siedes Knotens, um alle benötigten Helfer oder Seitenobjekte einzuziehen. Schauen Sie sich diese super einfaches Beispiel: https://github.com/juliemr/ng-page-e2e/blob/master/test/angularsite_test.js#L2
Sie sollten sie in separaten Dateien halten, ja.
Und in Ihrem Winkelmesser referenceConf.js (config mit starten Winkelmesser) Sie schreiben sollte:
specs: ['<your_path>/test/pages/*Test.js']
In diesem Fall < Winkelmesser startet alle Dateien von dir "/ test/pages" mit Maske * Test.js (loginPageTest.js, homePageTest.js)
Ich habe Angst, dass es keine gemeinsamen Standards, wenn es um Tests mit Seitenobjekten kommt. Sie mehrere Vorschläge unter Winkelmesser Fragen finden können: https://github.com/angular/protractor/issues/401 und https://github.com/angular/protractor/issues/78
Für meine Bedürfnisse Ich habe sehr einfache Seite Objekte in meinem Open-Source-Projekt finden Sie unter: https://github.com/9ci/angle-grinder/pull/124
auch recht interessant Implementierung Sie in https://github.com/juliemr/ng-page-e2e/tree/master/test
finden können,Haben Sie es mit Astrolabium versucht? Es ist eine PageObject-Implementierung oben auf dem Winkelmesser, die Ihre Struktur führen könnte: https://github.com/stuplum/astrolabe
Dort können Sie sehen, dass die empfohlene Struktur ein Seitenobjekt pro Datei ist.
Z. B .: singInPage.js
var Page = require('astrolabe').Page;
module.exports = Page.create({
url: { value: 'http://<somesite>.com/signin' },
username: { get: function() { return this.findElement(this.by.input('username')); } }, // finds an input element with the name 'username'
submit: { get: function() { return this.findElement(this.by.id('submit')); } } // finds an element with the id 'submit'
});
es macht das Schreiben von Testfällen und sogar Seitenobjekt sehr kompakt und lesbar.
- 1. Wie lautet die korrekte Winkelmessersyntax für Seitenobjekte?
- 2. Wie greife ich von jeder Seite aus auf alle Seitenobjekte in django-cms zu?
- 3. Wie können Seitenobjekte aus einer Sammlung von Seitennamen (Strings) dynamisch instanziiert werden?
- 4. Anklickbare Links im WebBrowser-Steuerelement im Bearbeitungsmodus
- 5. Bilder im Platzhalter im Fokus anzeigen
- 6. Variable Initialisierung im Variablenbereich im Tensorflow
- 7. Im Hintergrund push notifications im Hintergrund
- 8. Funktion im geladenen Paket nicht im Suchpfad
- 9. Fehler im Applet im Navigator mit Fingerabdruckleser
- 10. Internationalisierung im Server oder im Browser
- 11. Schreiben im Debug-Modus im Freigabemodus
- 12. CONCAVE-Polygonscheitelpunkte im (Zähler) im Uhrzeigersinn bestellen?
- 13. Kein Element im Vorlagenfeld im Filter anzeigen
- 14. Datengröße im Speicher im Vergleich zur Festplatte
- 15. Tastatur öffnet sich im Vollbildmodus im Querformat
- 16. Standardoptionen im Kontextmenü im Flex ausblenden
- 17. Variablen im globalen "Vorher" im Mocha setzen?
- 18. Rückruffunktion im Benutzermodus und im Kernelmodus
- 19. im Manifest
- 20. Im Parameter
- 21. Im Folgenden
- 22. Im Bearbeitungsmodus?
- 23. Im Artikel
- 24. req.locals im Vergleich zu res.locals im Vergleich zu res.data im Vergleich zu req.data im Vergleich zu app.locals in Express-Middleware
- 25. Ereignisse im Metro-Modus im Winrt verkabeln (Apps im Metro-Stil)
- 26. Label-Steuerelement im ItemTemplate-Tag im TemplateField-Tag im GridView-Steuerelement
- 27. Wie im Laufe der Zeit im Matlab Fints Zeitreihe Objekt im Durchschnitt?
- 28. Video im Vollbildmodus im Querformat wiedergeben, wenn meine gesamte Anwendung im Hochformat gesperrt ist
- 29. iOS App funktioniert im Hintergrundmodus im Simulator, aber nicht im Gerät?
- 30. Video im lokalen System, aber jetzt im Intranet im Remote-System
Leider wusste ich noch nicht, wie man Tests in einer einzelnen Datei startet, ohne 'specs' in der Konfiguration zu ändern. Auch wenn Sie Tests in der IDE debuggen möchten, kann dieser Beitrag hilfreich sein: [Wie Debugger-Tests in Webstorm zu debuggen] (http://stackoverflow.com/questions/20137109/how-to-debug-angular-protractor-tests -in-WebStorm) –
entdecken ich letzte Nacht, als ich dies umzusetzen versuchte, die Sie nicht Seite Objekte in den Spezifikationen wie diese enthalten können. Jede Datei wird unabhängig von den anderen ausgeführt. Ich baute ein System um den Bedarf des Knotens herum. – wlingke
@wlingke Ich habe ein ähnliches Problem hier. Kannst du mir bitte zeigen, was du getan hast, um das Problem zu lösen? – Shimu