Erstellen JUnit Testsuite mit Beispiel: @RunWith @SuiteClasses
In Junit können wir mit der Testsuite alle Testfälle aus mehreren Klassen an einem Ort zusammenfassen und gemeinsam ausführen.
Um den Suite-Test auszuführen, müssen Sie eine Klasse mit den unten aufgeführten Anmerkungen annotieren:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) oder@Suite.SuiteClasses ({test1.class, test2.class……})
Mit den obigen Anmerkungen beginnen alle Testklassen in der Suite nacheinander mit der Ausführung.
Schritte zum Erstellen einer Testsuite und eines Testläufers
Schritt 1) Erstellen Sie eine einfache Testklasse (z. B. MyFirstClassTest) und fügen Sie eine mit @test annotierte Methode hinzu.
Schritt 2) Erstellen Sie eine weitere Testklasse zum Hinzufügen (z. B. MySecondClassTest) und erstellen Sie eine mit @test annotierte Methode.
Schritt 3) Um eine testSuite zu erstellen, müssen Sie die Klasse zunächst mit @RunWith(Suite.class) und @SuiteClasses(class1.class2…..) annotieren.
Schritt 4) Erstellen Sie eine Test Runner-Klasse, um unsere Testsuite wie unten angegeben auszuführen.
Code-Erklärung:
- Codezeile 8: Deklarieren der Hauptmethode des Klassentests, der unsere ausführen wird JUnit Test.
- Codezeile 9: Ausführen von Testfällen mit JunitCore.runclasses, das den Namen der Testklasse als Parameter verwendet (im obigen Beispiel verwenden Sie TestSuiteExample.class, das in Schritt 3 gezeigt wird).
- Codezeile 11: Verarbeiten des Ergebnisses mithilfe einer for-Schleife und Ausdrucken des fehlgeschlagenen Ergebnisses.
- Codezeile 13: Ausdrucken des erfolgreichen Ergebnisses.
Ausgang: Hier ist die Ausgabe, die einen erfolgreichen Test ohne Fehlerverfolgung zeigt, wie unten dargestellt:
JUnit Beispiel einer Testsuite
Betrachten Sie ein komplexeres Beispiel
JunitTest.java
JunitTest.java ist eine einfache Klasse mit den Anmerkungen @ RunWith und @Suite Anmerkungen. Sie können die Anzahl der .classes in der Suite wie folgt als Parameter auflisten:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java ist eine Testklasse mit einer Testmethode zum Ausdrucken einer Nachricht wie unten angegeben. Sie werden diesen Kurs als Suite im oben genannten Kurs verwenden.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java ist eine weitere Testklasse ähnlich SuiteTest1.java eine Testmethode zum Ausdrucken einer Nachricht wie unten angegeben haben. Sie werden diese Klasse als Suite verwenden JunitTest.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
Ausgang
Nach der Ausführung JunitTest.java, das eine Suite mit enthält test1.java und test2.java, erhalten Sie die folgende Ausgabe:
Zusammenfassung
In diesem Tutorial haben Sie anhand eines Beispiels die Grundlagen von Test Harness und Test Suites im Detail kennengelernt.
- Testgeschirr oder Automatisierung Testen ist eine Software oder eine Sammlung von Software, die es einem Benutzer ermöglicht, Daten mit mehreren Eingaben zu testen und die Ausführung zu steuern
- Test Harness ermöglicht tatsächlich ein Test-Framework, das die gesamte Arbeit der Testausführung mithilfe einer Testbibliothek und der Erstellung eines Testberichts übernimmt
- In Junit können wir mit der Test-Suite alle Testfälle vieler Klassen an einem Ort zusammenfassen und gemeinsam ausführen.