2013-10-21 4 views
0

TestNG에서 POM 구조를 사용하는 Selenium Framework를 만들고 있습니다. 주석을 사용하여 @Test 값을 전달합니다.Selenium TestNG @DataProvider 런타임 값

@Test 메서드의 출력이 @Test 메서드에서 사용되도록 요구되는 경우 내 질문에 그때 데이터 공급자가 포함 된 값만 전달할 수 있기 때문에 어떻게 할 것입니다.

+0

pom 프레임 워크? 내 생각에 너는 심령을 의미한다고 생각해. :) – sircapsalot

+0

나는 개인적으로 같은 대답으로이 사이트에서 몇 가지 질문에 대답했다. 테스트가 서로 의존하지 않도록하십시오. 그들 스스로 자급 자족 할 수있는 방법을 찾아라. – sircapsalot

+0

안녕하세요 sircapsalot, 그 POM은 Maven –

답변

-1

POM 그는 WebElements의 페이지 객체 모델 매핑 유형을 의미합니다.

테스트 방법을 느슨하게 연결하는 것이 좋습니다 (따라서 @Test는 다른 @Test에 의존해서는 안됩니다).

그래도 원하는 경우 @DataProvider는 테스트 클래스에있는 모든 @Test 메소드에 사용할 수 있습니다. 클래스 레벨 맵을 정의하고이를 테스트 중에 사용하십시오.

샘플 :

TestingClass{ 

// define global variable 
Map<String,String> resultMap=new HashMap<String, String>(); 

@DataProvider 
public Object{ 

// some logic for dataProvider 
} 
@Test(dataProvider="dp") 
method1(){ 

// your logic 
// then put your final result to be used by method2 into appropriate obj    

resultMap.put("key","value");// assign result to defined global variable 

    } 

    @Test(dataProvider="dp") 
    method2(){ 

    // use the resultMap to take results from previous method. 

    } 


    } 
+0

OP가 아니라 매번 @Test 메서드에서 dp를 사용한 후 아닙니다; 그러나 전 세계적으로 첫 번째 방법의 결과. –

0

OP 언어 언급 병렬 실행을 필요로하지 않으며, 따라서이 쉽게 정적 변수로 해결 될 수있다. Java에서 아래 패스를 인쇄해야합니다 :

public static int outputOfMethodA=0; 

@Test 
    methodA(){ 
    outputOfMethodA=outputOfMethodA+1; 
} 

@Test 
methodB(){ 
    if(outputOfMethodA=1){ 
    System.out.println("pass!"); 
    } 
    else{system.out.println("fail!") 
    } 
} 
관련 문제