TestNG: Alle nachfolgenden Testklassen werden übersprungen, wenn die @BeforeClass-Methode fehlschlägt?

8

Mein Setup:

  • Eine TestBase-Klasse , die eine @BeforeClass-Methode enthält
  • Mehrere Testklassen erstrecken sich von der TestBase-Klasse und enthalten auch eine @BeforeClass-Methode
  • testNG 6.8.8

Warum diese Einrichtung?:

  • Ich brauche die @BeforeClass in der TestBase-Klasse, um Setup bereitzustellen, das alle Testklassen benötigen, und ich möchte nicht in jeder Testklasse wiederholen. Zum Beispiel Thread-ID-abhängige Anmeldedaten.
  • Die TestBase-Klasse instanziiert auch den Selenium WebDriver
  • Ich brauche die @BeforeClass in den Test-Klassen, um alles zu initialisieren, was alle @Test-Methoden benötigen, aber nur einmal für alle Tests erstellt werden müssen (oder müssen). Dies schließt Aufrufe an die WebDriver-Instanz ein (deshalb arbeitet ein "normaler" Konstruktor hier nicht)

Folgendes passiert:

Wenn ich die Tests über eine testNG xml-Datei ausführe und eine Ausnahme innerhalb der @BeforeClass -Methode einer der Test-Klassen gibt, werden alle nachfolgenden Testklassen von TestNG <übersprungen / strong>.

Warum passiert das? Wie man es verhindert?

Wenn ich die Annotation in der TestBase-Klasse beispielsweise in @BeforeSuite ändere, werden alle Tests ausgeführt , auch wenn eine der Ausnahmen in der @BeforeClass-Klasse vorhanden ist Methoden.

Beispiel:

Wenn Sie die XML-Datei ausführen, wird die Klasse "RunAllTestClasses02" übersprungen.

testNG XML-Datei:

%Vor%

TestBase-Klasse mit einer @BeforeClass-Methode:

%Vor%

Testet die Klasse, die die Ausnahme in der @BeforeClass-Methode auslöst:

%Vor%     
drkthng 17.07.2015, 13:09
quelle

2 Antworten

5

Dies war ein Bug in Testng. gelöst in 6.9.5. Bitte upgraden.

    
niharika_neo 20.07.2015, 13:06
quelle
-1

Versuchen Sie, @AfterClass(alwaysrun = true) oder / und @AfterMethod(alwaysrun=true) hinzuzufügen, da sie standardmäßig übersprungen werden, wenn entweder BeforeClass oder BeforeMethod nicht abgeschlossen sind.

In der Dokumentation zu testNG Configuration Failures, Policy und alreverRun wird erläutert, ob / wann Konfigurationsfehler dazu führen, dass Listener-Methoden ( alwaysRun und andere Listener), Fehlerrichtlinien und bewährte Methoden übersprungen werden.

    
Dexter 02.11.2017 08:30
quelle