2017-12-19 12 views
0

Ich habe einige Testfälle unter meiner testng.xml. Meine testng.xml sieht wie folgt aus.@Test Annotation läuft zuerst für alle Tests in testNG?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="AutomationPractice" parallel="none"> 
    <test name="Logins"> 
    <classes> 
     <class name="newMavenProject.Gmail_Login_Firefox"/> 
     <class name="newMavenProject.Facebook_Login_Chrome"/> 
    </classes> 
    </test> <!-- Logins --> 
</suite> <!-- AutomationPractice --> 

In beiden meinen Tests habe ich @BeforeTest, @Test und @AfterTest Anmerkungen. Wenn ich die testng.xml als testNGSuite ausführe. Ich sehe, dass der Browser gleichzeitig für beide Tests (@BeforeTest) geöffnet wird und dann im Gmail_Login-Test @Test-Annotation ausgeführt wird. Dann wird Facebook_Login_Chrome seine @Test Annotation ausführen. Und dann führt mein Gmail_Login-Test die @AfterTest-Annotation aus (Schließen des Browsers) und dann wird mein Facebook_Login_Chrome-Test die @AfterTest-Annotation ausführen (Browser schließen).

Wie kann ich es ermöglichen, dass mein Gmail_Login Test vollständig ausgeführt wird (@BeforeTest, @Test, @AfterTest) und dann mein Facebook_Login_Chrome Test vollständig ausgeführt wird (@BeforeTest, @Test, @AfterTest).

Vielen Dank !!

+0

Können Sie uns bitte den Code zeigen, den Sie verwenden, um dieses Problem zu simulieren? Auch wenn Sie die Thread-IDs ausdrucken, was sehen Sie? TestNG sollte nichts parallel ausführen, außer und bis es explizit konfiguriert ist. Vielleicht möchten Sie die Druck-Thread-ID-Logik hinzufügen und die Ausgabe freigeben. Bitte geben Sie auch die von Ihnen verwendete TestNG-Version an. Die letzte veröffentlichte Version ist ab heute '6.13.1' –

+0

Sie sollten vor und nach der Methode verwenden, die sofort um die Testmethode herum laufen. Vortest und Nachtest werden für das Test-Tag ausgeführt. – Grasshopper

Antwort

0

Wenn das Tag <test> ausgeführt wird, werden alle Methoden ausgeführt, die mit @BeforeTest aus allen enthaltenen Klassen kommentieren.

Es sieht so aus, als müssten Sie die Einrichtungs- und Abbaumethoden mit den Anmerkungen @BeforeClass und @AfterClass annotieren.

Nach TestNG documentation:

@BeforeTest: Die kommentierte Methode wird vor jeder Testmethode ausgeführt wird zu den Klassen gehör innerhalb des <test> Tag ausgeführt wird.

@AfterTest: Die annotierte Methode wird ausgeführt, nachdem alle Tests Methoden, die zu den Klassen innerhalb des Tags <test> gehören, ausgeführt wurden.

@BeforeClass: Die annotierte Methode wird ausgeführt, bevor der erste Test Methode in der aktuellen Klasse aufgerufen wird.

@AfterClass: Die annotierte Methode wird ausgeführt, nachdem alle Testmethoden in der aktuellen Klasse ausgeführt wurden.

Verwandte Themen