GEDOPLAN
Jakarta EE (Java EE)Java - Software Testing

Quarkus Continuous Testing

Jakarta EE (Java EE)Java - Software Testing
magnifying 4340698 640

Seit der Version 2 unterstützt Quarkus das sog. Continuous Testing. Dabei werden im Deveplopment Mode kontinuierlich die Tests des in der Entwicklung befindlichen Projekts durchgeführt.

Nehmen wir mal an, dass wir mit dem folgenden Maven-Kommando ein neues Quarkus-Demo-Projekt aufsetzen :

mvn io.quarkus.platform:quarkus-maven-plugin:2.2.3.Final:create \
-DprojectGroupId=de.gedoplan \
-DprojectArtifactId=quarkus-demo \
-DclassName="de.gedoplan.HelloEndpoint" \
-Dpath="hello"

Das Demoprojekt enthält dann im Main Classpath einen simplen REST Endpoint in der Klasse de.gedoplan.HelloEndpoint sowie einen passenden Test im Test Classpath.

Starten wir nun im Projektverzeichnis quarkus-demo den Development Mode:

mvn quarkus:dev
[INFO] Scanning for projects…
…
Listening for transport dt_socket at address: 5005
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2021-10-03 11:58:09,287 INFO [io.quarkus] (Quarkus Main Thread) quarkus-demo 1.0.0-SNAPSHOT on JVM (powered by Quarkus 2.2.3.Final) started in 5.277s. Listening on: http://localhost:8080
2021-10-03 11:58:09,291 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-10-03 11:58:09,297 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation]

--
Tests paused
Press [r] to resume testing, [o] Toggle test output, [h] for more options>

In diesem Modus können nun bekanntlich Quellcode-Änderungen durchgeführt werden, die bei einem REST Call automatisch zu einem Hot Reload führen. Seit der 2er-Version lassen sich hierin zudem kontinuierlich Tests durchführen. Dieser Modus ist zunächst inaktiv und kann mit der Taste r aktiviert werden:

Listening for transport dt_socket at address: 5005
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2021-10-03 12:02:26,886 INFO  [io.quarkus] (Quarkus Main Thread) quarkus-demo 1.0.0-SNAPSHOT on JVM (powered by Quarkus 2.2.3.Final) started in 3.410s. Listening on: http://localhost:8080
2021-10-03 12:02:26,904 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-10-03 12:02:26,909 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation]


--
All 1 test is passing (0 skipped), 1 test was run in 3415ms. Tests completed at 12:02:45.
Press [r] to re-run, [o] Toggle test output, [h] for more options>

Die Ausgabe ist natürlich in den üblichen Farben gehalten (wenn die Konsolenausgabe Farben erlaubt), sodass mit einem schnellen Blick der Teststatus erfasst werden kann: Grün – prima, rot – ups!

Das alleine ist schon sehr cool, aber es kommt noch besser: Bei einer Codeänderung werden nicht etwa sämtliche Tests des Projekts ausgeführt, was in realistischen Projekten recht viele sein könnten, sondern nur diejenigen, die von der Änderung betroffen sind. Dadurch bleibt die Teststatus-Ermittlung flüssig und wirklich kontinuierlich!

Weitere Informationen

Wir versorgen Sie gerne mit weiterem Input:

Dirk Weil, GEDOPLAN GmbH

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

mask g258b04055 640
Web Security, Jakarta EE (Java EE), Spring

Jackson JSON Filter

JSON als Datenstruktur ist bei der Implementierung von Webservices kaum wegzudenken. Insbesondere Jackson als JSON Parser bietet eine ganze Reihe von Möglichkeiten, um auf die Generierung einzuwirken. Ein naheliegen Anwendungsfall hier z.B. das Ausblenden von bestimmten Attributen basierend auf Benutzer-Rollen oder Berechtigungen. Vorhang auf für: @JsonFilter

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!