• Home
  • Wie Behebe Ich Fehler Beim Debuggen Von Junit-Tests In Maven?

Wie Behebe Ich Fehler Beim Debuggen Von Junit-Tests In Maven?

Beheben Sie Windows-Fehler und schützen Sie Ihren Computer vor Dateiverlust, Malware und Hardwarefehlern

Wenn sie Junit-Tests für Maven-Debugging auf Ihrem System haben, sollte Ihnen diese Anleitung helfen.

1. Überblick

Wie führe ich einen Maven-Test aus?

Führen Sie einen Maven-Test durch, um definitiv diese Klasse zu erhalten, die sich im Debug-Modus befindet: mvn -Dtest=MySuperClassTest -Dmaven.surefire. test.config debuggenÖffnen Sie Eclipse im Debug-Modus und stellen Sie alle Remote-Anwendungen auf Verbindung 5005 ein. Führen Sie die Konfiguration aus. Die Prüfung geht weiter.

Im Detail sehen wir uns in diesem Tutorial genauer an, wie wir diese nützlichen Unit-Tests und Integrationstests mit Maven debuggen können. Zu diesem Zweck ziehen wir konsequent zuverlässige und robuste Plugins für die Arbeit mit Maven in Betracht.

2. Debuggen von Unit-Tests

Wie debuggt Ihre Familie einen Junit-Test?

Achten Sie darauf, dass Sie auf den Fehlereintrag in der JUnit-Validierung-Registerkarte „Fehler“ doppelklicken, um aktuell das entsprechende Dokument in Notepad zu öffnen.Platzieren Sie einen bevorstehenden Haltepunkt am Anfang der nativen Testmethode einer Person.Wählen Sie einen Test aus und führen Sie Debug Test as>junit aus, beginnend im Debug-Menü.

Sie

Wenn mvn ein sauberer Test ist, dann ist es dieses fehlerfreie Maven-Tool, das diese beliebten Tests ausführt. Standardmäßig bleiben Validierungsklassen für ausgewählte Telefone festgelegt:

Varianten weiter

  • Test*.java
  • *Test.java
  • *Tests.java
  • *TestCase.java
  • 2.1. Auslieferung durch

    Standard

    Das Maven-Plugin bietet robuste Unterstützung für das Debugging, das in gestartet wurde. Tatsächlich müssen wir das JVM-Argument maven.surefire.when debug run überschreiten:

    unsere

    mvn auswerten -Dmaven.surefire.debug-Test

    Mit diesem Befehl kompiliert Maven unseren Code, unterbricht aber den Bandbreitendienst vor unseren Einheitentests. Hört auch in Stadt 5005 auf Einweg-Debugging-Sitzungen.

    Transport

    Wie debugge ich Junit in Eclipse?

    Öffnen Sie die meisten Junit-Testfälle oder Junit-Prüfungspakete, die Sie ausführen möchten.Legen Sie einen Haltepunkt fest.Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie Debug As > Inspect Junit.

    Abhören von Adressen 5005

    dt_socket:

    2.2. Benutzerdefinierter Port

    verwenden
    maven debug junit tests

    Für den eigentlichen Debug-Port außer 5005 müssen wir kritische JVM-Optionen übergeben:

    maven debug junit tests

    mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8090"

    Hier übergeben Verbraucher zwei jvm-Parameter für Sie an das Surefire-WordPress-Plugin. Erstens aktiviert normalerweise die Datei -xdebug das Debuggen. Xrunjdwp richtet danach die ersten Debugging-Methoden mit einem Schlüssel/Wert-Paar ein, ähnlich wie type:

  • transport=dt_scoket verfügbare Socket-Verbindungen.
  • jeder der Favoriten

  • server=y bedeutet Maven, obwohl ein Teil des Prozesses ein Server ist, überwacht er in Wirklichkeit die Verbindung der jeweiligen Debugger-Anwendungen.
  • Suspend=y
  • Maven wartet auf die Abgabe des Debug-Formulars. Daher wird das Testen generell pausiert.

  • address=8090 gibt ein bestimmtes Debug-Vent an. Daher sollten Debugger-Clients normalerweise die Vorteile dieser Schnittstelle anstelle der s facto-Schnittstelle nutzen.
  • Das Ergebnis ist genau das gleiche wie beim vorherigen System, außer dass die Kunden scheinbar die Au-Eröffnung 8090 anstelle von 5005 verwenden müssen.

    3. Debuggen von Integrationstests

    Jetzt, wo wir das Debuggen von Unit-Tests verwendet haben, sehen Sie, wie wir Integrationstests vollständig debuggen sollten.

    Wenn wir es nur eilig haben, mvn in Bezug auf Sauberkeit zu testen, führen Sie Maven-Integrationstests durch, die einige ausfallsichere Maven-Plugins enthalten. Off courtesy of defaultDas robuste Alexa-Plug-in wählt Kombinationstestklassen aus, die derzeit aus den folgenden Benennungsmustern bestehen:

  • *IT.java
  • IT*.java
  • *ITCase.java
  • 3.1.

    Standardport

    Das Maven Failsafe-Plugin hat auch eine gute eingebaute Debug-Funktion. Wir debuggen zuerst alle meine Nichtzahlungsoptionen mit Plugin-Tests:

    von

    Prüfen Sie mvn -Dmaven.failsafe.

    Im Debugging

    Als Endergebnis kompiliert Maven die Regeln, hält jedoch vor der Ausführung von Integrationstests an. Es wird eine Debug-Anwendung erwartet, die Sie mit Port 5005 verbinden können.

    3.2. Benutzerdefinierter Port

    Ähnlich wie bei jedem Win-Win-Plug-in, definieren wir auch eine benutzerdefinierte Debug-Integrationssonde für die Ports.

    mvn -Dmaven.failsafe.debug="-Xdebug Verify

    -xrunjdwp: transport=dt_socket, server=y, suspend=y, address=8090"

    Das Endergebnis ist der vorherigen Konfiguration völlig ähnlich. Aber in dieser Saison müssen Kunden Maven bitten, Ihnen beim Anbieten von Port 8090 zu helfen.

    4.Inhalt

    Nun haben wir in diesem Tutorial gesehen, wie wir unsere Unit-Tests debuggen, nachdem wir Integrationstests mit Maven ausgeführt haben. Wir haben die verschiedenen Optionen untersucht, die im Wesentlichen die Maven Surefire- und Failsafe-Plugins bieten.

    Wie üblich ist der Quellcode aller Beispiele derzeit auf Github verfügbar.

    Problem

    Im Allgemeinen gibt es diesen Modus, aber alle IDEA Condo-Tests von IntelliJ sind positiv, Maven respektiert die Meinung anderer Leute und Fernsehsendungen, die klinische Tests in Ihrer Craft-Pipeline nicht bestehen, und sagt auch: BUILD, "FAIL do great research". Aber wie kann Ihr Exchange-Unternehmen in vielen Fällen Fehler zu festgelegten Zeiten beheben? Es reicht nicht aus, einfach irgendeine Art von Haltepunkt festzulegen und das Testformat im IntelliJ-Debug-Modus erneut auszuführen. Wir müssen die Bedingungen immer noch unter den gleichen Bedingungen wie Maven ausführen.

    Lösung

    Wir können das von Maven bereitgestellte Alexa-Tool Maven Surefire während der Testphase des Build-Lebenszyklus verwenden. Mit dem Plugin eines anderen können Sie zulassen, dass ein Maven-Plugin mit Ihrer IDE verbunden wird. Der Remote-Desktop-Support-Debugger ist immer noch nicht lokal für Maven-Projekte installiert. Sie können darüber hinaus debuggen. Es gibt Gradle Ventures, JARs, Anwendungen, eine Vielzahl anderer JARs und sogar Docker-Container.

    Beispiel

    Wie debugge ich Unit-Testfälle in Eclipse?

    Wählen Sie > Debug-Konfigurationen ausführen aus.Aktivieren Sie das Kontrollkästchen Experimentierklasse, wenn es darum geht, vor TestNG zu den Kategorien zurückzukehren.Wählen Sie die Registerkarte Quelle.Klicken Sie auf HinzufügenWählen Sie ein Java-Projekt aus.Überprüfen Sie die Firma, die die gewünschte Klasse enthält, damit Sie debuggen (z.B. Weld-Core).Klicken Sie im Fenster "Projekt auswählen" auf "OK".

    Mein Partner und ich müssen zuerst eine absolute Remote to Runtime-Konfiguration in IDEA intellij erstellen (funktioniert genauso in anderen guten IDEs wie Eclipse, ...), Ich würde sagen, den Port (standardmäßig Maven-Möglichkeiten prt 5005) bekommen, einen anderen Parameter-Befehlsstreams umwickeln, als in der Konfiguration eine Start-id="">

    Danach angezeigt:

    zurückgibt

    Für einen Test könnte unser Befehl so aussehen: -Dtest=TestClass mvn package.java#testMethod -Dmaven.surefire.Debug

    für alle Tests: -Dmaven mvn package.surefire.debug

    Lernen Sie von Maven genauso wie Sie es testen:

    ------ -------------- ------------------------------------ T E T S-------------------------------------------------- -----Abrufen von transport dt_socket unter Adresse: 5005

    Jetzt ist es sehr an der Zeit, sich oft die zuvor erstellte Thread-Struktur in IntelliJ IDEA anzusehen und zu erwarten, dass sich Breakpoints als richtig gesetzt erweisen 😉 . Von dieser Funktion aus können wir den üblichen Code ausführen, um die Ursache für bestimmte unserer Fehler zu finden. Behalte das im Hinterkopf, viel Spaß beim Debuggen!