Ich habe ein Projekt erstellt, das in das Backend-Git-Repository (node.js rest api) und das Frontend-Git-Repository (eckle 4) unterteilt ist. Ich habe Gitlab-CI eingerichtet, um meine Tests für jedes Repo durchzuführen. Jetzt möchte ich sicherstellen, dass meine Software nicht bremst, wenn ich Änderungen im Frontend oder im Backend mache. Ich kam zu dieser Idee: Wenn ich mein Frontend-Projekt dränge, kann ich mein tatsächliches Backend klonen und dann Integrationstests von FE zu BE laufen lassen. Auf der anderen Seite, wenn ich Backend drücke, muss ich mein Frontend klonen und die gleichen Integrationstests erneut von FE nach BE durchführen. Gibt es vielleicht einen anderen Weg? Ich habe auch ein neues Repository erstellt und Frontend- und Backend-Repos als git-Submodule verwendet. Gibt es einen Best-Practice-Weg da draußen?Wie führe ich Integrationstests im CI-Server zwischen Backend- und Frontend-Projekten durch?
Antwort
Da FE ohne BE keinen Sinn ergibt, können Sie FE-Tests als Integration betrachten.
Im Grunde testen Sie REST-API-Back-End mit einer Art von Client, der mit BE interagiert unter Verwendung von Wissen der Service-Schnittstelle. Ihr Kunde gibt also vor, ein FE zu sein. Wenn Ihre Testabdeckung gut genug ist, können Sie sicher sein, dass die Änderungen in der Schnittstelle den Datenaustauschmechanismus nicht durchbrechen würden.
Es könnte jedoch immer noch die Änderungen geben, die die "Nachrichtenformat" -Änderungen verursachen (aber den Mechanismus behalten, dass diese Nachrichten von DE zu FE und zurück übertragen werden), so dass der Client diese Nachrichten nicht parsen oder interpretieren könnte.
Daher würde ich empfehlen, beide Tests entweder auf BE- oder FE-Änderungen auszuführen und FE-Tests als Integrations-Tests zu betrachten.
- 1. Wie führe ich Maven-Integrationstests in alphabetischer Reihenfolge durch?
- 2. Wie führe ich einen Matching zwischen zwei Sequenzen durch?
- 3. Wie führe ich Rails-Integrationstests durch, ohne DB-Inhalte zu löschen?
- 4. Wie führe ich einen JAVA Callback zwischen Klassen durch?
- 5. Wie führe ich ein Retrofit im Hintergrund-Thread durch?
- 6. Wie führe ich einen Count-Abruf im Hintergrund durch?
- 7. Wie führe ich eine optionale Kinderansicht durch?
- 8. Wie führe ich Schlagwortvorschläge in Qt durch?
- 9. Wie führe ich eine verschachtelte Iteration durch?
- 10. Wie führe ich eine facettierte Suche durch?
- 11. Wie führe ich eine Rückruffunktion durch?
- 12. Wie führe ich diese Join-Abfrage durch?
- 13. Wie führe ich eine Kollisionsprüfung durch?
- 14. Wie führe ich eine rekursive Schleife durch?
- 15. Wann führe ich Komponententests im Entwicklungs-Workflow durch?
- 16. Wie führe ich Routen mit eckiger Groß- und Kleinschreibung durch?
- 17. Wie führe ich Authentifizierung und Autorisierung in Xamarin.Forms durch?
- 18. Wie führe ich eine Groß- und Kleinschreibung mit LIKE durch?
- 19. Führe komplexe KI-Aufgaben im Spiel ohne Multithreading durch
- 20. Wie führe ich eine Übereinstimmung zwischen Groß- und Kleinschreibung in MarkLogic durch? 6
- 21. Kubernetes Kommunikation zwischen Frontend und Backend
- 22. Wie führe ich eine Iteration in SQL durch?
- 23. Wie initialisiere ich den Logger für Integrationstests?
- 24. Wie führe ich kopflose Browser im Docker?
- 25. Wie führe ich Debug-und Release-Konfiguration
- 26. Integrationstests von React Frontend mit Django REST Backend
- 27. Wie führe ich meine Seite im Hintergrund?
- 28. Wie führe ich etwas im STA-Thread?
- 29. Wie führe ich einen Timer im Hintergrund?
- 30. Wie führe ich Java im Kompatibilitätsmodus aus?
ja das, was ich auch über habe. was denkst du darüber, diese 2 repositorys durch den einsatz von git-submodulen zu einem zu machen? – Robert
@Robert das ist es wahrscheinlich wert, aber ich würde mich nicht anstrengen, da es etwas mehr Konfiguration und etwas mehr Wartung erfordert, aber nicht viel zusätzlichen Wert einführen. –