Tests schreiben, Cypress?

Guten Morgen,

folgendes: Ich möchte mich gerne an eine Order hängen mittels Plugin und das ganze natürlich testen wärend der Entwicklung - Ohne jedes mal manuell durch den Order Prozess gehen zu müssen.

Wie würde ich das am besten machen, mittels End-to-end & Cypress und Cypress durch den Order Prozess gehen lassen?

PS: Ich kann den Cypress test runner nicht starten:

no such file or directory: ./vendor/shopware/platform/src/Administration/Resources/e2e/node_modules/.bin/cypress

Dachte es wäre dann vielleicht ein ./vendor/shopware/platform/src/Administration/Resources/app/administration/test/e2e/node_modules/.bin/cypress  
Allerdings auch erfolglos.

Hallo,

korrekt, End-to-End Tests mit Cypress sind ein guter Weg, UI Tests zu automatisieren. Wir haben das intern auch im Einsatz und haben da sehr positive Erfahrungen mit gemacht.

Wir haben unsere Testsuite als NPM Package veröffentlicht: https://www.npmjs.com/package/@shopware-ag/e2e-testsuite-platform

Diese verwenden wir mit dem Core und einigen Plugins, ggf. lohnt sich ein Blick und Du kannst davon das ein oder andere mitbenutzen. In dem Zusammenhang ist auch unser Weg dokumentiert, wie wir unsere End-to-End Tests starten. Wenn Du Dir die Core Test anschauen möchtest, kannst Du auch psh-Skripte (Link zur Doku kommt später im Text) verwenden, diese unterstützen derzeit aber leider noch keine custom Plugins.

Dein zweiter Befehl funktioniert grundsätzlich, dabei muss man jedoch darauf achten, den korrekten Pfad zum Project Root anzugeben. Einfacher ist es wie folgt, ich schreibe das kurz am Beispiel der Storefront:

Navigiere in das Verzeichnis der Tests, z.B:

cd ./vendor/shopware/platform/src/Storefront/Resources/app/storefront/test/e2e

Dort kannst du den Test Runner starten:

./node_modules/.bin/cypress open --config baseUrl=http://docker.vm:8000  

Details zum Thema End-to-End Testing haben wir vor Kurzem in einigen neuen Doku Artikeln veröffentlicht: https://docs.shopware.com/en/shopware-platform-dev-en/internals/testing/end-to-end-testing

Unsere Tests zum Order Prozess kannst Du im offiziellen Platform Repository finden: https://github.com/shopware/platform/tree/master/src/Storefront/Resources/app/storefront/test/e2e/cypress/integration/checkout Im Grunde genommen wird der Checkout in ein paar verschiedenen Konstellationen geprüft, wie z.B. Schnell- oder normale Kundenbestellung, verschiedene Kundengruppen (brutto / netto), Mischwarenkörbe, verschiede Viewports, etc. Daran kann man sich orientieren, aber je nach Plugin müsste da ggf. noch ein wenig fürs eigene Plugin angepasst werden.

Das waren jetzt ein paar erste Ansätze, ich hoffe die helfen Dir schon weiter. Ansonsten, melde dich gerne hier, wenn du Fragen, Feedback o.Ä. hast.

Bis dahin viele Grüße,

Ramona

1 Like

Vielen Dank Ramona für deine ausführliche Erklärung.

Ich habe den Pfad zum Plugin mitgegeben, daraus resultierete dann obiger Fehler - Sowie in den Docs angegeben.

./vendor/shopware/platform/src/Administration/Resources/e2e/node_modules/.bin/cypress open --project custom/plugins/SasSimple/tests/e2e --env projectRoot=custom/plugins/SasSimple/tests/e2e

Danach kommt besagter Fehler:

no such file or directory: ./vendor/shopware/platform/src/Administration/Resources/e2e/node_modules/.bin/cypress

Der Order tests existiert nicht im Plugin, ich habe es so heraus gelesen, dass dieser angelegt wird. Das Plugin ist ein Theme.

Ich werde mir einmal eure testsuite anschauen und auch einmal eure Plugins auf Github. das das der richtige Weg ist hilft mir schon einmal sehr weiter  Thumb-Up

@ShapeAndShift‍ Hallo,

hast Du cypress in Deine Plugin Directory (Resources/app//test/e2e) installiert?