ここでの問題は、Hashtable 配列をオブジェクト配列に変換できないことです。ここで、コンテンツの読み取りは、xls ファイルからすべての行を読み取り、次の形式でハッシュテーブル配列に保存します。
roleName=testRole981、admin=admin、projectName=Automateme、userPassword=aspiresys12、roleDesc=grant[testplan_execute]、grant[testplan_create_build]、grant[testplan_metrics]、adminPass=admin、userName=mur .
その hashTable 配列をオブジェクト配列に変換して、testNG テスト ケースでそれらを DataProvider として渡すことができるようにします。
public class DriverScript {
//public boolean isExecuted = true;
Object[][] Obj = new Object[100][100];
@SuppressWarnings("unchecked")
@DataProvider(name="Test")
public Object[][] ValidDataProvider() {
Utilities util = new Utilities();
String pathValue = Utilities.LocatingXls("Data.xls");
Hashtable<String, String>[] hashDrv = (Hashtable<String, String>[]) util.contentReading(pathValue, "Scenario1");
Object[][] Obj = new Object[100][100];
for(int i=0;i<hashDrv.length;i++)
{
System.out.println("cont vector reading" + hashDrv[i].get("projectName"));
Obj[i][0] = hashDrv[i];
}
System.out.println("outsideloop" + Obj[0][0]);
return Obj;
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "Test")
public void methodtest(Hashtable <String, String> a)
{
/* Utilities util = new Utilities();
String pathValue = Utilities.LocatingXls("Data.xls");
Hashtable<String, String>[] hashDrv = (Hashtable<String, String>[]) util.contentReading(pathValue, "Scenario1");
for(int i=0;i<hashDrv.length;i++)
{
System.out.println("cont vector reading" + hashDrv[i].get("projectName"));
Scenario1 scnTst=new Scenario1(hashDrv[i]);
scnTst.check1();
}
if(!isExecuted)
{
Assert.fail("falied");
}
}*/
}}