2016-06-28 2 views
0

에 매개 변수를 전달하는 방법을 내 suite.xml에서 리스너 먹는 내부 또는 코드 자체TestNG의 리스너

에 의해 매개 변수를 전달하는 방법을 알고 싶습니다 나는 정확하게에 알고 병렬 테스트이 필요 나는 몇 가지 보고서를 만들기 위해 테스트를 실행하는거야 어떤 장치

이 나는 ​​/이

스위트 파일을 달성하고자하는 무슨의 예입니다

<suite name="SearchButton" parallel="tests" thread-count="5"> 
    <test name="SamsungS6"> 
     <parameter name="deviceUDID" value="04157df40862d02f"/> 
     <classes> 
      <class name="MyTestScenario"/> 
     </classes> 
    </test> 
</suite> 

오 R

@Test 
public void researchText(){ 
    String DeviceUDID = "1234"; 
} 

내가 성공하지

System.getProperty("deviceUDID") // or 
result.getAttribute() // or 
result.getParameters() 

방법에 대한 아이디어를 찾을려고 노력

public void onTestSkipped(ITestResult result) { 
    System.out.println("My deviceUDID "); 
} 

내 청취자의 기기 UDID를 찾을 수 있도록하려면 그걸 할거야?

답변

0

get* 다른 곳에서 을 사용하지 않으면 방법을 사용할 수 없습니다. 테스트에서

  1. ITestContext (ITestResult#getTestContext())에 데이터를 설정하여 주입니다 :

    나는 2 옵션을 참조하십시오. the related documentation을 참조하십시오.

  2. 테스트 메소드에 대한 주석 메타 데이터가있는 리스너 (예 : @UDID("1234")). 그러나 중복을 피하려면 테스트 자체에서 사용하는 것이 더 어려울 수 있습니다.

귀하의 예를 따르면

@Test 
public void researchText(ITestContext context){ 
    String DeviceUDID = "1234"; 
    context.setAttribute("UDID", DeviceUDID) 
} 

public void onTestSkipped(ITestResult result) { 
    System.out.println("My deviceUDID " + result.getTestContext().getAttribute("UDID")); 
} 

또는

<suite name="SearchButton" parallel="tests" thread-count="5"> 
    <test name="SamsungS6"> 
     <parameter name="deviceUDID" value="04157df40862d02f"/> 
     <classes> 
      <class name="MyTestScenario"/> 
     </classes> 
    </test> 
</suite> 

@Parameters({ "deviceUDID" }) 
@Test 
public void researchText (String DeviceUDID, ITestContext context){ 
    context.setAttribute("UDID", DeviceUDID) 
} 

public void onTestSkipped(ITestResult result) { 
    System.out.println("My deviceUDID " + result.getTestContext().getAttribute("UDID")); 
} 
0

나는 마침내 그것을 할 수있는 방법을 발견했다. 어쩌면 해결할 수 있지만 작업을 수행 할 수 있습니다. 나는 우리가 저를 그냥로했다 리스너 내부 지금은 그것을 가지고 그리고 xml 파일에서

deviceUDID = context.getCurrentXmlTest().getParameter("deviceUDID"); 

을 매개 변수에 액세스 할 수있는 onStart 방법을 가지고 본 적이 ITestListener 리스너에서

변수에 저장하고 onTestSkipped 방법으로 액세스하십시오.

관련 문제