NachfragehintergrundDas Team muss Integrationstests durchführen und dafür auf Middleware wie MySQL und RabbitMQ zurückgreifen. Jeder Entwickler muss Tests schreiben und für den von ihm entwickelten Code Tests ausführen. Um gegenseitige Störungen zu vermeiden, können Sie Ihre eigene abhängige Umgebung lokal im Forschungs- und Entwicklungszentrum erstellen. Wir hoffen, dass diese Umgebungen einfach, schnell und leicht zu bereinigen sind. Verwenden Sie Docker, um die Umgebung zu erstellen Docker kann die oben genannten Anforderungen gut erfüllen.
Zusammenfassend lässt sich sagen, dass uns die Verwendung von Docker dabei helfen kann, schnell eine Projektabhängigkeitsumgebung aufzubauen, aber lokalisierte Docker-Abhängigkeiten führen dazu, dass unser Code beim Testen immer noch nicht rein genug ist und jede Betriebsumgebung eine lokale Docker-Installation erfordert. Verbessern von Integrationstests mit einem zentralen Docker-ServerTatsächlich bietet Docker selbst einen Remote-Verbindungsmodus, der es uns ermöglicht, Docker zentral bereitzustellen und dann den Testcode zu integrieren, um mithilfe des Docker-Servers über eine TCP-Verbindung abhängige Middleware zu erstellen und zu testen. Docker Server-Remote-Link-KonfigurationAm Beispiel von CentOS 7.6 wird in diesem Artikel erklärt, wie ein Docker für die Remoteverbindung konfiguriert wird. Öffnen Sie den Remote-Verbindungsport in {"Hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]} Fügen Sie die Datei [Service] ExecStart= ExecStart=/usr/bin/dockerd
Testcontainer-FrameworkNach der Bereitstellung des Remote-Dockers besteht das folgende Problem
Glücklicherweise hilft uns das Testcontainer-Framework, die oben genannten Probleme gut zu lösen.
Mit Spring Boot integrierte Testcontainer Darüber hinaus bietet das Spieleunternehmen Playtika ein Testframework an, das Testcontainer in Spring Boot integriert Abhängigkeiten von UmgebungsvariablenWenn Sie Testcontainer oder Testcontainers-Spring-Boot von Playtika für Remote-Docker-Links verwenden, muss der Docker-Client nicht lokal installiert werden. Allerdings müssen entsprechende Umgebungsvariablen konfiguriert werden, damit der Code die Adresse des Remote-Dockers kennt. Es gibt mehrere Möglichkeiten, diese Adresse zu konfigurieren:
Docker remote über die Kommandozeile nutzen und verwaltenDer obige Testcode erfordert nicht die Installation des Docker-Clients. Wenn wir Docker jedoch über die Befehlszeile verwalten müssen, können wir einige Docker-Clients installieren, um mit dem Remote-Docker zu kommunizieren. Natürlich entsprechen die oben genannten Testcontainer einer Art Client. Informationen zu Installationsmethoden für Clientprogramme für verschiedene Betriebssysteme finden Sie unter: https://gist.github.com/kekru/4e6d49b4290a4eebc7b597c07eaf61f2 Verweise https://www.testcontainers.org/ Dies ist das Ende dieses Artikels über die Verwendung von Remote-Docker für Integrationstests. Weitere Informationen zu Docker-Integrationstests finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Mit Mailto ist das Senden von E-Mails im HTML-Format ganz einfach
>>: Vue3 setup() - Erweiterte Verwendungsbeispiele - ausführliche Erklärung
Seien Sie nicht überrascht, wenn Sie im Bild eine ...
Konfigurieren des Alibaba Cloud Docker Container ...
[LeetCode] 185. Die drei höchsten Gehälter der Ab...
Glasfenster Was wir heute erreichen werden, ist d...
Beim Erstellen von Webseiten verwenden wir häufig ...
Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...
Inhaltsverzeichnis Zweck Modulinstallation Grundl...
Zunächst: Was ist ein Box-Collapse? Elemente, die...
Inhaltsverzeichnis Die Rolle von Fremdschlüsseln ...
Da HTML-E-Mail keine unabhängige HOST-Seite auf di...
Inhaltsverzeichnis Die Beziehung zwischen der Kon...
Inhaltsverzeichnis 1. Erster Blick auf COUNT 2. D...
Dieser Befehl ändert die Datentabelle ff_vod und ...
Dieser Artikel beschreibt die MySQL-Indexabdeckun...
Inhaltsverzeichnis 1. Die Schreibreihenfolge eine...