データプロバイダからハッシュマップを使用してExcelシートから値を取得しようとしています。現在、Excelシートから行全体を読み取ることができます。 "TestcaseId"、 "Testdata"、 "scriptname"。ここで、データプロバイダのテストメソッドのパラメータとしてスクリプト名を渡す必要があります。これを達成する方法を教えてください。ハローマップを使用したデータプロバイダコードです。dataproviderのパラメータをテストメソッドに渡す方法
@DataProvider(name="cbndataprovider")
public static Iterator<Object[]> cbntestdata() throws IOException
{
List <Object[]> alist = new ArrayList<Object[]>();
OriginalExcelRW Excel = new OriginalExcelRW("F:\\anand_acer\\selenium\\cbnindia1\\Test_Data_Sheet.xlsx");
XSSFSheet s = Excel.Setsheet("Test_Data");
int rowcount = s.getLastRowNum();
for(int i =1;i<=rowcount;i++)
{
Object[] obj = new Object[1];
Map<String,String>hm=new HashMap<String,String>();
hm.put(Excel.Readvalue(s, 0, 0), Excel.Readvalue(s, i, 0));
hm.put(Excel.Readvalue(s, 0, 1), Excel.Readvalue(s, i, 1));
hm.put(Excel.Readvalue(s, 0, 2), Excel.Readvalue(s, i, 2));
hm.put(Excel.Readvalue(s, 0, 3), Excel.Readvalue(s, i, 3));
System.out.println(Excel.Readvalue(s, 0, 0)+"...."+ Excel.Readvalue(s, i, 0));
System.out.println(Excel.Readvalue(s, 0, 1)+"...."+ Excel.Readvalue(s, i, 1));
System.out.println(Excel.Readvalue(s, 0, 2)+"...."+ Excel.Readvalue(s, i, 2));
System.out.println(Excel.Readvalue(s, 0, 3)+"...."+ Excel.Readvalue(s, i, 3));
obj[0]=hm;
alist.add(obj);
}
return alist.iterator();
}
}
スクリプト名とは何ですか?テストメソッドに3列+スクリプト名を渡しますか? – CARE
データプロバイダから3列すべてを渡しますが、行選択はdataproviderからテストメソッドに渡すスクリプト名に基づいて行われ、scriptname列は3列に含まれます。テストメソッドはscriptnameパラメーターのみ。 – Ak17
以下の答えがあなたの質問に答えるならば、 – virusrocks