2017-03-06 1 views
0

방향이 필요합니다. 테스트 공장에서 다른 테스트 공장을 호출 할 수 있는지 여부에 관계없이 어디에서나 검색했지만 답변을 얻을 수 없습니다.다른 테스트 팩토리를 호출 할 테스트 팩토리

예제 : 첫 번째 테스트 팩토리가 나에게 테스트 스위트를 가져오고 각 스위트에 대해 해당 스위트의 테스트 케이스를 얻을 다른 테스트 팩토리가 호출됩니다.

이 다음은 샘플 코드입니다 :

public class clsTestSuites{ 
    @Factory(dataProvider="dataSuites") 
    public Object[] createTestSuites(int id, String TestSuite) {   
     return new Object[] {new clsTestCases(id, TestSuite)};   
    } 

    @DataProvider(name="dataSuites") 
    public static Object[][] dataProviderForTestSuites() { 
     Object[][] dataArray = {{1, "Suite#1"},{2, "Suite#2"}}; 
     return dataArray; 
    } 
} 

public class clsTestCases{ 
    private int id; 
    private String TestSuite; 

    @Factory(dataProvider="dataCases") 
    clsTestCases(int id, String TestSuite){ 
    this.id = id; 
    this.TestSuite = TestSuite; 
    }  

    @DataProvider(name="dataCases") 
    public static Object[][] dataProviderForTestCases() { 
     Object[][] dataArray = {{1, "Case#1"},{2, "Case#2"}}; 
     return dataArray; 
    } 

    /*** i dont want to do this at present::: @Test (dataProvider="dataCases") ***/ 
    public void runTestCases(int id, String TestCase) { 
     System.out.println("Executing Test Case "+ TestCase); 
     assertTrue(true); 
    } 
} 

답변

0

내가 사용 사례하지만 당신이하려고하실 수 없습니다 뒤에 목표를 이해 확실하지 않다 (나는 그것을 결코 생각).

@Factory은 TestNG에게 (생성자에있을 때) 클래스의 인스턴스를 만드는 방법을 설명하거나 인스턴스를 직접 만들 수있는 방법을 설명합니다.

인스턴스를 직접 만들면 TestNG가 추가 작업을 수행 할 것으로 기대할 수 없습니다.

샘플에 따르면 TestNG는 clsTestCases의 인스턴스 4 개 ("Suite # 1", "Suite # 2", "Case # 1"및 "Case # 2")가 있어야합니다.

+0

감사합니다. @juherr. –

+0

Test Factory-1이 다른 Test Factory-2를 호출 할 수 없다는 말입니까? 어떤 제안? –

관련 문제