2017-01-23 5 views
0

angegeben
Ich habe dieses Beispiel-Code:
Run-Methode mit Nachbearbeitungs kommentierten erst nach Testmethode in testng

public class A { 

@BeforeTest(groups = "group1") 
public void beforeTest() { 
    System.out.println("Before test"); 
} 

@BeforeMethod(groups = "group1") 
public void beforeMethod() { 
    System.out.println("Before method"); 
} 

@Test(groups = { "group1" }) 
public void test1() { 
    System.out.println("Test1"); 
} 

@Test(groups = {"group2"}) 
public void test2() { 
    System.out.println("Test2"); 
} 

@AfterMethod(groups = { "group2" }, alwaysRun = false) 
public void afterMethod() { 
    System.out.println("After method"); 
} 

@AfterTest(groups = "grupa1") 
public void afterTest() { 
    System.out.println("AfterTest"); 
} 
} 

Und der Ausgang ist:

Before test 
Before method 
Test1 
After method 
Before method 
Test2 
After method 
AfterTest 

Aber ich möchte empfange etwas wie dieses:

Before test 
Before method 
Test1 
Before method 
Test2 
After method 
AfterTest 

Gibt es eine Möglichkeit, die Methode afterMethod erst nach der zweiten Testmethode aufzurufen? Ich kann keine AfterGroup-Annotation verwenden.

+1

Sie sollten Ihre Lösung hier anpassen. Kann eine gemeinsam genutzte Variable/ein Flag sein, die angibt, ob der Test ausgeführt werden soll oder nicht, und dieses Flag als erste Zeile in der 'After Method'-Methode überprüfen. –

Antwort

0

Ersetzen Sie @AfterMethod durch @AfterClass und Sie werden die erwartete Ausgabe haben.

Verwandte Themen