2013-10-03 3 views
-1

예를 들어, 여러 클래스가있는 TestSuite가 하나 있습니다.TestNG에서 테스트 스위트를 반복 할 수있는 방법

반복 1 TestSuite는 처음 Excel 시트의 첫 번째 행에서 데이터를 가져옵니다.

반복 2 TestSuite는 두 번째로 Excel 시트의 두 번째 행에서 데이터를 다시 실행합니다. 정보 를 들어

...

은 -> 난 기반 데이터에 대한 아파치 POI를 사용하고 있습니다. -> 나는 testng xml 파일 자체에서 반복에 대한 매개 변수를 제공하는 데 관심이 없다. -> Test Suite는 하나씩 실행해야합니다.

도움을 주시면 감사하겠습니다.

+0

예 : string testData = DataRead ("SheetName", "ColumnName"); 이 메소드는 Apache Poi를 사용하여 Excel 시트에서 데이터를 읽는 사용자 정의 함수를 호출합니다. 클래스 또는 테스트에서 "testData"변수를 사용할 수 있습니다. 테스트 스위트를 반복하는 것이 궁금합니다. 분명히 말하길, \ @AfterSuite의 완료 후 [스레드를 닫습니다.] 나는 새 스레드에서 \ @ BeforeSuite를 호출해야합니다. – user2841190

+0

의견에 게시하는 대신 질문에 추가하십시오. 미래의 독자가 쉽게 이해할 수있게 해줍니다. – Seanny123

답변

1

@Test 메서드에서 직접 Apache POI를 사용하고있는 것 같습니다. 그렇다면 테스트 용 DataProvider를 추가하고 Excel 필드의 배열 배열 또는 Excel 행 배열 만 반환하도록 권장합니다. http://testng.org/doc/documentation-main.html#parameters-dataproviders을 살펴보십시오.이 방법은 testng.xml에서 매개 변수를 지정하지 않아도됩니다.

//This method will provide data to any test method that declares that its Data Provider 
//is named "dataFromExcelSheet" 
@DataProvider(name = "dataFromExcelSheet") 
public Object[][] createData1() { 
    //I have no idea about Apache POI methods, so names are nearly random 
    int numberOfRows = sheet.getNumberOfRows(); 
    Object[][] lines = new ExcelRow[numberOfRows][1]; 
    for (int i = 0; i < numberOfRows; i++) { 
     lines[i][0] = sheet.getNextRow; 
    } 
    return lines; 
} 

//This test method declares that its data should be supplied by the Data Provider 
//named "dataFromExcelSheet" 
@Test(dataProvider = "dataFromExcelSheet") 
public void yourTest(ExcelRow row) { 
    //Write your code here 
} 
+0

해결책 주셔서 감사합니다. 하지만 여기에 대한 예입니다, 예 : 문자열 testData = DataRead ("SheetName", "ColumnName"); 이 메소드는 Apache Poi를 사용하여 Excel 시트에서 데이터를 읽는 사용자 정의 함수를 호출합니다. 클래스 또는 테스트에서 "testData"변수를 사용할 수 있습니다. 테스트 스위트를 반복하는 것이 궁금합니다. 분명히 말하길, \ @AfterSuite의 완료 후 [스레드를 닫습니다.] 나는 새 스레드에서 \ @ BeforeSuite를 호출해야합니다. – user2841190

관련 문제