Ausführen von Kotlin-Tests mit Maven
Wenn wir ein neues Projekt mit Kotlin starten, müssen wir als Erstes ein Maven-Projekt erstellen, das unsere Anwendung kompilieren und ausführen kann. Allerdings ist unsere Arbeit noch nicht getan. Wir müssen noch einen Weg finden, unsere automatisierten Tests zu kompilieren und auszuführen. Dieser Blogbeitrag hilft uns bei der Erstellung eines Maven-Projekts, das sowohl Unit- als auch Integrationstests kompilieren und ausführen kann, die JUnit 5 verwenden.
Nachdem wir diesen Blogbeitrag fertiggestellt haben, werden wir:
- Kann ein Maven-Projekt erstellen, das Einheiten- und Integrationstests kompilieren kann, die Kotlin verwenden.
- Wissen, wie wir benutzerdefinierte Quell- und Ressourcenverzeichnisse zu unserem Maven-Build hinzufügen können.
- Verstehen Sie, wie wir entweder Einheiten- oder Integrationstests überspringen können.
- Wissen, wie wir die aufgerufenen Tests mit JUnit 5-Tags filtern können.
- Kann sowohl Einheiten- als auch Integrationstests mit Maven ausführen.
Beginnen wir damit, einen Blick auf die Anforderungen unseres Maven-Builds zu werfen.
Die Anforderungen unseres Maven-Builds
Die Anforderungen unseres Maven Build sind:
- Der gesamte Code (Anwendung und Tests) muss Kotlin verwenden.
- Einheiten- und Integrationstests müssen separate Quell- und Ressourcenverzeichnisse haben.
- Es muss möglich sein, nur Einheiten- oder Integrationstests auszuführen.
- Es muss möglich sein, sowohl Unit- als auch Integrationstests auszuführen.
- Nur Einheitentests werden standardmäßig ausgeführt.
Als nächstes werfen wir einen Blick auf das zu testende System.
Einführung in das zu testende System
In diesem Blogbeitrag werden wir sowohl Unit- als auch Integrationstests für MessageService
schreiben Klasse. Diese Klasse hat eine Methode namens getMessage()
was die Nachricht zurückgibt:'Hello World!'.
Der Quellcode von MessageService
Klasse sieht wie folgt aus:
class MessageService { fun getMessage(): String { return "Hello World!" } }
Lassen Sie uns weitermachen und herausfinden, wie wir ein einfaches Kotlin-Projekt erstellen können, das nur Komponententests ausführen kann.
Einheitentests mit Maven ausführen
Wenn wir ein Kotlin-Projekt erstellen möchten, das nur Komponententests ausführen kann, müssen wir die folgenden Schritte ausführen:
Zuerst , müssen wir drei Eigenschaften angeben:
- Die
kotlin.version
-Eigenschaft gibt die verwendete Kotlin-Version an. - Die
kotlin.compiler.incremental
-Eigenschaft aktiviert die inkrementelle Kompilierung. - Der
junit-jupiter.version
Eigenschaft gibt die verwendete JUnit 5 Version an.
Nachdem wir diese Eigenschaften angegeben haben, wird der properties
Abschnitt unserer POM-Datei sieht wie folgt aus:
<properties> <kotlin.version>1.3.21</kotlin.version> <kotlin.compiler.incremental>true</kotlin.compiler.incremental> <junit-jupiter.version>5.4.2</junit-jupiter.version> </properties>
Zweiter , müssen wir die erforderlichen Abhängigkeiten angeben. Da wir Tests für eine Kotlin-Anwendung unter Verwendung von Kotlin und JUnit 5 schreiben möchten, müssen wir die folgenden Abhängigkeiten angeben:
- Die Kotlin-Standardbibliothek (
kotlin-stdlib
). - AssertJ Core.
- Die Abhängigkeiten von JUnit 5 (JUnit Jupiter API und JUnit Jupiter Engine).
Nachdem wir die erforderlichen Abhängigkeiten angegeben haben, wird die Datei dependencies
Abschnitt unserer POM-Datei sieht wie folgt aus:
<dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> <!-- Testing Dependencies --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.12.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> </dependencies>
Dritter , müssen wir die Quell- und Testverzeichnisse unseres Maven-Builds konfigurieren. Wir werden die folgenden Verzeichnisse verwenden:
- Die src/main/kotlin Verzeichnis enthält den Quellcode unserer Anwendung.
- Der src/test/kotlin Verzeichnis enthält den Quellcode unserer Unit-Tests.
Nachdem wir diese Verzeichnisse konfiguriert haben, wird die Datei build
Abschnitt unserer POM-Datei sieht wie folgt aus:
<build> <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> </build>
Vierter , müssen wir sicherstellen, dass Maven unseren Kotlin-Code kompiliert. Wir können dies tun, indem wir diesen Schritten folgen:
- Fügen Sie das Kotlin Maven-Plugin zu unserem Maven-Build hinzu.
- Erstellen Sie eine Ausführung, die
compile
aufruft Ziel des Kotlin Maven Plugins. - Erstellen Sie eine Ausführung, die
test-compile
aufruft Ziel des Kotlin Maven Plugins.
Nachdem wir das Kotlin Maven Plugin in der plugins
konfiguriert haben Abschnitt unserer POM-Datei sieht seine Konfiguration wie folgt aus:
<plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <goals> <goal>test-compile</goal> </goals> </execution> </executions> </plugin>
Fünfter , müssen wir sicherstellen, dass Maven unsere Komponententests mit dem Maven Surefire-Plugin (Version 2.22.1) ausführt. Wir können dies tun, indem wir das folgende Snippet zum plugins
hinzufügen Abschnitt unserer POM-Datei:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin>
Wir haben jetzt unseren Maven-Build konfiguriert. Bevor wir jedoch unsere Komponententests ausführen können, müssen wir eine Testklasse schreiben und diese Klasse in src/test/kotlin ablegen Verzeichnis. Der Quellcode unserer Testklasse sieht wie folgt aus:
import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test class MessageServiceTest { private lateinit var service: MessageService @BeforeEach fun configureSystemUnderTest() { service = MessageService() } @Test @DisplayName("Should return the correct message") fun shouldReturnCorrectMessage() { val message = service.getMessage() assertThat(message).isEqualTo("Hello World!") } }
Wir können jetzt unsere Komponententests mit dem folgenden Befehl ausführen:mvn clean test . Wenn wir diesen Befehl ausführen, sollten wir sehen, dass das Maven Surefire-Plugin unseren Komponententest ausführt:
[INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.testwithspring.master.kotlin.MessageServiceTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.049 s - in com.testwithspring.master.kotlin.MessageServiceTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
Wir haben also gerade ein Maven-Projekt erstellt, das unsere Komponententests kompilieren und ausführen kann. Unser Build bietet jedoch keine Unterstützung für Integrationstests. Als Nächstes werden wir herausfinden, wie wir sowohl Unit- als auch Integrationstests unterstützen können.
Einheiten- und Integrationstests mit Maven ausführen
Da wir mit Maven sowohl Unit- als auch Integrationstests durchführen wollen, müssen wir einige Änderungen an unserem Maven-Build vornehmen. Beginnen wir mit der Konfiguration der Quell- und Ressourcenverzeichnisse unseres Maven-Builds.
Konfigurieren der Quell- und Ressourcenverzeichnisse
Wir können die Quell- und Ressourcenverzeichnisse unserer Einheiten- und Integrationstests konfigurieren, indem wir diesen Schritten folgen:
Zuerst , haben wir das Ressourcenverzeichnis unserer Integrationstests zu unserem Maven-Build hinzugefügt. Wir können dies tun, indem wir das Build Helper Maven-Plugin verwenden. Wenn wir dieses Plugin verwenden möchten, müssen wir die folgenden Schritte ausführen:
- Fügen Sie das Build Helper Maven-Plugin zu unserem Maven-Build hinzu.
- Erstellen Sie eine Ausführung, die src/integration-test/resources hinzufügt Verzeichnis zu unserem Maven-Build.
Nachdem wir das Build Helper Maven-Plugin konfiguriert haben, sieht seine Konfiguration wie folgt aus:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>add-integration-test-resources</id> <phase>generate-test-resources</phase> <goals> <goal>add-test-resource</goal> </goals> <configuration> <resources> <resource> <filtering>true</filtering> <directory>src/integration-test/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin>
Zweiter , da unsere Unit- und Integrationstests separate Quellverzeichnisse haben, müssen wir sicherstellen, dass Maven den Quellcode unserer Unit- und Integrationstests kompilieren kann. Wir können dies tun, indem wir diesen Schritten folgen:
- Entfernen Sie
testSourceDirectory
Element ausbuild
Abschnitt unserer POM-Datei. - Stellen Sie sicher, dass das Kotlin-Maven-Plugin den Quellcode aus src/test/kotlin kompilieren kann und src/integration-test/kotlin Verzeichnisse.
Nachdem wir diese Änderungen an unserem Maven-Build vorgenommen haben, sieht die Konfiguration des Kotlin-Maven-Plugins wie folgt aus:
<plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <goals> <goal>test-compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/test/kotlin</sourceDir> <sourceDir>${project.basedir}/src/integration-test/kotlin</sourceDir> </sourceDirs> </configuration> </execution> </executions> </plugin>
Nachdem wir die Quell- und Ressourcenverzeichnisse unserer Unit- und Integrationstests konfiguriert haben, müssen wir sicherstellen, dass wir unsere Integrationstests Maven ausführen können.
Durchführen von Integrationstests mit Maven
Wir können unsere Integrationstests mit Maven ausführen, indem wir das Maven Failsafe-Plugin (Version 2.22.1) verwenden. Wir können dieses Plugin zu unserem Maven-Build hinzufügen, indem wir das folgende Snippet zu plugins
hinzufügen Abschnitt unserer POM-Datei:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.1</version> </plugin>
Nachdem wir das Maven Failsafe-Plugin zu unserem Maven-Build hinzugefügt haben, müssen wir es wie folgt konfigurieren:
- Stellen Sie sicher, dass das Maven Failsafe-Plugin alle Testklassen ausführt, deren Name mit dem Suffix endet:
Test
. Wir können dies tun, indem wir das Wildcard-Muster ändern, das verwendet wird, um die aufgerufenen Testklassen auszuwählen. - Stellen Sie sicher, dass das Maven Failsafe-Plugin sowohl
integration-test
ausführt undverify
Tore. Dieintegration-test
Goal führt unsere Integrationstests und denverify
aus Goal überprüft die Ergebnisse unserer Integrationstests und lässt den Build fehlschlagen, wenn unsere Integrationstests fehlschlagen.
Nachdem wir das Maven Failsafe-Plugin konfiguriert haben, sieht seine Konfiguration wie folgt aus:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.1</version> <configuration> <includes> <include>**/*Test.java</include> </includes> </configuration> <executions> <execution> <id>integration-tests</id> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin>
Nachdem wir das Maven Failsafe-Plugin konfiguriert haben, müssen wir die Maven-Profile erstellen, mit denen wir entweder Unit-Tests, Integrationstests oder alle Tests ausführen können. Lassen Sie uns weitermachen und herausfinden, wie wir diese Maven-Profile erstellen können.
Erstellen der erforderlichen Maven-Profile
Wir können die erforderlichen Maven-Profile erstellen, indem wir diesen Schritten folgen:
Zuerst , müssen wir die Standardwerte der folgenden Eigenschaften angeben:
- Der Wert von
skip.integration.tests
-Eigenschaft gibt an, ob unser Build unsere Integrationstests überspringen soll. Da standardmäßig nur Einheitentests ausgeführt werden, muss der Standardwert dieser Eigenschafttrue
sein . - Der Wert von
skip.unit.tests
-Eigenschaft definiert, ob unser Build unsere Komponententests überspringen soll. Da standardmäßig nur Komponententests ausgeführt werden, muss der Standardwert dieser Eigenschaft wiederfalse
sein .
Nachdem wir diese Standardwerte festgelegt haben, wird der properties
Abschnitt unserer POM-Datei sieht wie folgt aus:
<properties> <kotlin.version>1.3.11</kotlin.version> <kotlin.compiler.incremental>true</kotlin.compiler.incremental> <junit-jupiter.version>5.3.2</junit-jupiter.version> <skip.integration.tests>true</skip.integration.tests> <skip.unit.tests>false</skip.unit.tests> </properties>
Zweiter , müssen wir drei Maven-Profile erstellen:
- Der
dev
profile ist das Standardprofil unseres Maven-Builds und führt nur Unit-Tests aus. - Der
integration-test
Profil führt nur Integrationstests aus. - Der
all-tests
Profil führt sowohl Einheiten- als auch Integrationstests aus.
Nachdem wir diese Maven-Profile erstellt haben, wird der profiles
Abschnitt unserer POM-Datei sieht wie folgt aus:
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>integration-test</id> <properties> <skip.integration.tests>false</skip.integration.tests> <skip.unit.tests>true</skip.unit.tests> </properties> </profile> <profile> <id>all-tests</id> <properties> <skip.integration.tests>false</skip.integration.tests> <skip.unit.tests>false</skip.unit.tests> </properties> </profile> </profiles>
Dritter , müssen wir sicherstellen, dass das Maven Surefire-Plugin unsere Komponententests nicht ausführt, wenn der Wert von skip.unit.tests
Eigenschaft ist true
. Nachdem wir diese Änderung an der Konfiguration des Maven Surefire-Plugins vorgenommen haben, sieht seine Konfiguration wie folgt aus:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <skipTests>${skip.unit.tests}</skipTests> </configuration> </plugin>
Vierter müssen wir sicherstellen, dass das Maven Failsafe-Plugin unsere Integrationstests nicht ausführt, wenn der Wert von skip.integration.tests
Eigenschaft ist true
. Nachdem wir diese Änderung an der Konfiguration des Maven Failsafe-Plugins vorgenommen haben, sieht seine Konfiguration wie folgt aus:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.1</version> <configuration> <includes> <include>**/*Test.java</include> </includes> </configuration> <executions> <execution> <id>integration-tests</id> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> <configuration> <skipTests>${skip.integration.tests}</skipTests> </configuration> </execution> </executions> </plugin>
Wir haben jetzt die erforderlichen Maven-Profile erstellt. Als nächstes werden wir herausfinden, wie wir die aufgerufenen Tests mithilfe von JUnit 5-Tags filtern können.
Filtern der aufgerufenen Tests mit JUnit 5-Tags
Da die Maven Surefire- und Failsafe-Plugins dasselbe Include-Muster verwenden, müssen wir die aufgerufenen Tests mithilfe von JUnit 5-Tags filtern. Wir können dies tun, indem wir diesen Schritten folgen:
Zuerst , müssen wir sicherstellen, dass das Maven Surefire-Plugin nur Tests ausführt, die das Tag:unitTest
haben . Nachdem wir die erforderlichen Änderungen an der Konfiguration des Maven Surefire-Plugins vorgenommen haben, sieht es wie folgt aus:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <groups>unitTest</groups> <skipTests>${skip.unit.tests}</skipTests> </configuration> </plugin>
Zweiter , müssen wir sicherstellen, dass das Maven Failsafe-Plugin nur Tests ausführt, die das Tag:integrationTest
haben . Nachdem wir die erforderlichen Änderungen an der Konfiguration des Maven Failsafe Plugins vorgenommen haben, sieht es wie folgt aus:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.1</version> <configuration> <groups>integrationTest</groups> <includes> <include>**/*Test.java</include> </includes> </configuration> <executions> <execution> <id>integration-tests</id> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> <configuration> <skipTests>${skip.integration.tests}</skipTests> </configuration> </execution> </executions> </plugin>
Dritter , müssen wir sicherstellen, dass unsere Unit-Test-Klasse das Tag hat:unitTest
. Nachdem wir dieses Tag zu unserer Unit-Test-Klasse hinzugefügt haben, sieht sein Quellcode wie folgt aus:
import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test @Tag("unitTest") class MessageServiceTest { private lateinit var service: MessageService @BeforeEach fun configureSystemUnderTest() { service = MessageService() } @Test @DisplayName("Should return the correct message") fun shouldReturnCorrectMessage() { val message = service.getMessage() assertThat(message).isEqualTo("Hello World!") } }
Vierter , müssen wir eine Integrationstestklasse schreiben, die sicherstellt, dass das zu testende System die richtige Nachricht zurückgibt. Nachdem wir diese Klasse geschrieben haben, sieht ihr Quellcode wie folgt aus:
import org.assertj.core.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test @Tag("integrationTest") class GetMessageTest { private lateinit var service: MessageService @BeforeEach fun configureSystemUnderTest() { service = MessageService() } @Test @DisplayName("Should return the correct message") fun shouldReturnCorrectMessage() { val message = service.getMessage() Assertions.assertThat(message).isEqualTo("Hello World!") } }
Wir haben unserem Maven-Build jetzt Unterstützung für Integrationstests hinzugefügt. Fahren wir fort und finden heraus, wie wir unsere Einheiten- und Integrationstests ausführen können.
Durchführung unserer Tests
Wenn wir nur Komponententests ausführen möchten, müssen wir den Befehl ausführen:mvn clean test -P dev . Wenn wir diesen Befehl an der Eingabeaufforderung ausführen, sehen wir, dass Maven nur unsere Komponententests ausführt:
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ running-kotlin-tests-with-maven --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.testwithspring.master.kotlin.MessageServiceTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.046 s - in com.testwithspring.master.kotlin.MessageServiceTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
Wenn wir nur Integrationstests ausführen möchten, müssen wir den Befehl ausführen:mvn clean verify -P integration-test . Wenn wir diesen Befehl an der Eingabeaufforderung ausführen, sehen wir, dass Maven unsere Komponententests überspringt und nur unsere Integrationstests ausführt:
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ running-kotlin-tests-with-maven --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-failsafe-plugin:2.22.1:integration-test (integration-tests) @ running-kotlin-tests-with-maven --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.testwithspring.master.kotlin.GetMessageTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.043 s - in com.testwithspring.master.kotlin.GetMessageTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-failsafe-plugin:2.22.1:verify (integration-tests) @ running-kotlin-tests-with-maven ---
Wenn wir sowohl Komponenten- als auch Integrationstests ausführen möchten, müssen wir den folgenden Befehl ausführen:mvn clean verify -P all-tests . Wenn wir diesen Befehl an der Eingabeaufforderung ausführen, sehen wir, dass Maven unsere Einheiten- und Integrationstests ausführt:
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ running-kotlin-tests-with-maven --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.testwithspring.master.kotlin.MessageServiceTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 s - in com.testwithspring.master.kotlin.MessageServiceTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-failsafe-plugin:2.22.1:integration-test (integration-tests) @ running-kotlin-tests-with-maven --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.testwithspring.master.kotlin.GetMessageTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.058 s - in com.testwithspring.master.kotlin.GetMessageTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-failsafe-plugin:2.22.1:verify (integration-tests) @ running-kotlin-tests-with-maven ---
Wir können jetzt einen Maven-Build erstellen, der Einheiten- und Integrationstests ausführen kann, die Kotlin und JUnit 5 verwenden. Fassen wir zusammen, was wir aus diesem Blogbeitrag gelernt haben.
Zusammenfassung
Dieser Blogpost hat uns sechs Dinge beigebracht:
- Wir müssen die Kotlin-Standardbibliothek (
kotlin-stdlib
) Abhängigkeit in unserer POM-Datei. - Wir müssen unseren Testcode mit dem Kotlin Maven Plugin kompilieren.
- Wenn unsere Integrationstests Ressourcendateien haben (z. B. DbUnit-Datensätze), müssen wir das Ressourcenverzeichnis zu unserem Maven-Build hinzufügen, indem wir das Build Helper Maven-Plugin verwenden.
- Wir können unsere Unit-Tests mit dem Maven Surefire Plugin ausführen.
- Wir können unsere Integrationstests mit dem Maven Failsafe Plugin ausführen.
- Wir können die aufgerufenen Tests filtern, indem wir Maven-Profile und JUnit-5-Tags verwenden.
Quellcode von Github abrufen .