[英]Is there a way to get method meta data when using @BeforeMethod in TestNG?
[英]Data Providers for BeforeMethod capabilities
有沒有辦法為BeforeMethod
function 使用數據提供程序? 我想對許多不同的設備運行並行測試,所以我想使用參數來設置功能。 但我想要一種不同於使用testng.xml
的方式。
您可以通過Object[]
參數在BeforeMethod
中獲取數據提供者傳遞給測試的數據。
@BeforeMethod
public void beforeMethod(Object[] data) {
//.......
}
假設以下代碼:
@Test(dataProvider = "dataOne")
public void testMethodOne(String one, int two) {
}
@Test(dataProvider = "dataTwo")
public void testMethodTwo(int one) {
}
@DataProvider
public Object[][] dataOne() {
return new Object[][]{ {"a", 1} };
}
@DataProvider
public Object[][] dataTwo() {
return new Object[][]{ {1} };
}
為了在數據提供者到達測試方法之前獲取數據提供者傳遞的數據,您定義了一個 before 方法,如下所示。 我也添加了Method m
參數。 這將有助於識別正在運行的測試用例。 Object[] data
包含數據提供者傳遞的數據。 如果你添加了這個參數,那么 testNG 會自動將數據傳遞給 before 方法。
@BeforeMethod
public void beforeMethod(Method m, Object[] data) {
if(m.getName().equals("testMethodOne")) {
String x = (String) data[0];
int y = (int) data[1];
} else if(m.getName().equals("testMethodTwo")) {
int x = (int) data[0];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.