如何在運行時在我的測試用例中獲取當前運行的套件名稱?我正在使用下面顯示的代碼來獲取當前的套件名稱。在運行時在TestNG中獲取套件名稱
監聽器類:
public class SuiteListener implements ISuiteListener{
private static ThreadLocal<ISuite> ACCESS = new ThreadLocal<ISuite>();
public static ISuite getAccess() {
return ACCESS.get();
}
@Override
public void onFinish(ISuite suite) {
ACCESS.set(null);
}
@Override
public void onStart(ISuite arg0) {
ACCESS.set(arg0);
}
}
測試類:
@Listeners({ SuiteListener.class })
public class Practise {
@DataProvider(name = "getXlsPath")
public Object[][] createData() throws Exception {
String [][] testCasesPaths=null;
ISuite suiteListner = SuiteListener.getAccess();
String runningSuite=suiteListner.getName();
System.out.println(runningSuite);
testCasesPaths[0][0]="1.xls";
testCasesPaths[1][0]="2.xls";
return testCasesPaths;
}
@Test(dataProvider="getXlsPath")
public void test2(String xlsPath){
System.out.println(xlsPath);
}
}
TestNG的XML:
<suite name="tables" >
<test name="vendor" >
<classes>
<class name="Practise" ></class>
</classes>
</test>
代碼工作完美,直到我指定的parallel="tests"
套件中的屬性:
<suite name="tables" parallel="tests" >
在這種情況下,我無法獲取套件名稱 - 它沒有執行。 有人可以幫助我,獲取套件名稱?