我正在爲我的移動站點編寫自動化代碼。在testng中使用@BeforeTest註釋問題
的Class1: -
public class Sample{
@BeforeTest
public void createUser(){
// code to create user
}
@Test
public void verifyUser(){
// code to verify user
}
@AfterTest
public void deleteUser(){
// code to delete user
}
}
像Class1
。我有不同的課程,如Class2
,Class3
,Class4
。
testing.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1">
<test name="Regression1" parallel="false" preserve-order="true">
<classes>
<class name="Class1"/>
<class name="Class2"/>
<class name="Class3"/>
<class name="Class4"/>
</classes>
</test>
</suite>
命令來運行: -
mvn -Dtests=testing.xml test
當我上述命令運行,@BeforeTest
從Class1
,Class2
,Class3
,Class4
首先調用。這意味着在運行任何測試之前首先創建4個用戶。然後只有Class1
測試運行,然後Class2
等。 Atlast @AfterTest
正在運行(刪除所有用戶atlast)。
我不想要這種情況。
我需要以下方式來運行我的每個測試: -
- 創建的用戶
- 驗證的用戶
- 的用戶刪除
我需要Class1
首先執行完全然後Class2
等。
我需要做的testng註釋有什麼變化嗎?
我在一個類中的兩個測試方法。如果我使用BeforeMethod,它會調用每個測試。我不需要它。我想要調用BeforeMethod或BeforeTest而不考慮所有測試方法,並且將AfterMethod或AfterTest稱爲所有測試方法的結束。 – karan
如果您的測試類中有兩種測試方法,則使用'@ BeforeClass'和'@ AfterClass'。所以順序是:beforeClass(),testMethod1(),testMethod2(),afterClass()。 – peetya
謝謝。它的工作。 – karan