1
csv 파일에서 데이터를 읽는 중이므로이 데이터를 입력으로 사용할 테스트가 있습니다. 모든 값 집합에 대해 테스크 케이스로 실행하고 싶습니다. 데이터 공급자 문제가 를 사용하고 그것을 위해, 그것은 데이터의 마지막 세트 행을 취하고,csv 파일에서 testng의 데이터 공급자에게 매개 변수를 전달하는 방법
For eg : if my csv has following data
name1 id1 text1
name2 id2 text2
name3 id3 text3
은 단지 마지막 행 NAME3의 ID3 텍스트 3을 복용 한 번만 테스트를 실행하는 코드를 디버깅에서 저를 도와주세요 세 번이나.
@DataProvider(name = "test")
public Object[][] provider() throws InterruptedException
{
Object[][] returnObject ;
String[] checkpoint = ReadfromCSV();
count = count + 1;
returnObject = new Object[][]{checkpoint };
return returnObject;
}
@Test(description = "Test", groups = "test" , dataProvider = "test")
public void compare(String val1,String val2,String val3,String val4,String val5,String val6,String val7,String val8,String val9,String val10,String val11) {
System.out.println("1:" + val1);
System.out.println("4:" + val2);
System.out.println("5:" + val3);
}
@SuppressWarnings("null")
public String[] ReadfromCSV() throws InterruptedException {
String[] data= null;
String csvFile = "F:/sample1.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
data= line.split(cvsSplitBy);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
return data;
}
답장을 보내 주셔서 감사합니다. 내 코드를 변경하고 표시 할 수 있습니까? – Dude
@Dude 내 대답을 업데이트했습니다. 필자는 TestNg가 여러 번의 테스트 실행을 위해 다양한 테스트 케이스를 준비하기 위해 한 번만 데이터 제공 업체를 호출한다는 사실을 놓쳤다 고 생각합니다. – luboskrnac