2013-09-26 3 views
0

Java에서 selenium webdriver로 테스트를 작성하고 TestNG를 사용하여 testlink와 통합했습니다. 그래서 내가 테스트를 실행하고 실행이 정확하면 testlink에 올바르게 저장됩니다. 그러나 테스트가 실패하면 테스트에 다음 오류가 나타납니다.테스트 실패시 TestLink 오류

testlink.api.java.client.TestLinkAPIException : 필요한 매개 변수 상태가 호출자에 의해 제공되지 않았습니다. 테스트가 작동 통과 할 때

@Parameters({"nombreBuild", "nombrePlan", "nomTL_validacionCantidadMensajes"}) 
    @Test 
    public void validarMensajes(String nombreBuild, String nombrePlan, String nomTL_validacionCantidadMensajes) throws Exception { 
     String resultado = null; 
     String nota = null; 
     boolean test; 
     try{ 
      homePage = new HomePageAcquirer(driver); 
      homePage.navigateToFraudMonitor(); 
      fraud = new FraudMonitorPageAcquirer(driver); 
      test = fraud.validarCantidadMensajes(); 
      Assert.assertTrue(test); 
      if(test){ 
       resultado = TestLinkAPIResults.TEST_PASSED; 
      }else { 
       nota = fraud.getError(); 
       System.out.println(nota); 
       resultado = TestLinkAPIResults.TEST_FAILED; 
      } 
     }catch (Exception e){ 
      resultado = TestLinkAPIResults.TEST_FAILED; 
      nota = fraud.getError(); 
      e.printStackTrace(); 
     }finally{ 
      ResultadoExecucao.reportTestCaseResult(PROJETO, nombrePlan, nomTL_validacionCantidadMensajes, nombreBuild, nota, resultado); 
     } 
    } 

는 XML 잘 beacuse이다 :

이 내 시험 방법이다.

값을 설정하는 testlink 메소드.

public static void reportTestCaseResult(String projetoTeste, String planoTeste, String casoTeste, String nomeBuild, String nota, String resultado) throws TestLinkAPIException { 
    TestLinkAPIClient testlinkAPIClient = new TestLinkAPIClient(DEVKEY, URL); 
    testlinkAPIClient.reportTestCaseResult(projetoTeste, planoTeste, casoTeste, nomeBuild, nota, resultado); 

} 

답변

1

나는 새 AssertionError 그래서 당신도 경우 조건에 그것을 만들 결코 발생하는 이유는이 조건 ASSER이 실패

Assert.assertTrue(test); 
if(test){ 
    resultado = TestLinkAPIResults.TEST_PASSED; 
} else { 
    // 
} 

의 다른 블록에 결코 것입니다 생각합니다. ExceptionThrowableError에서도 파생되므로이 오류를 포착 할 수 없습니다. 따라서 기본적으로 조건을 제거하고 Error을 잡으려고 시도 할 수 있습니다. 이는 실제로 모범 사례는 아니지만 작동 할 것입니다. 이 상황에서 사용하는 가장 좋은 방법은 listener입니다. 그러나이 방법이 @Parameters과 어떻게 작동하는지 잘 모르겠습니다. 그러나 항상 이렇게 할 수 있습니다.

try{ 
    Assert.assertTrue(test); 
    resultado = TestLinkAPIResults.TEST_PASSED; 
} catch (AsertionError e){ 
    resultado = TestLinkAPIResults.TEST_FAILED; 
    nota = fraud.getError(); 
    e.printStackTrace(); 
}finally{ 
    ResultadoExecucao.reportTestCaseResult(PROJETO, nombrePlan, nomTL_validacionCantidadMensajes, nombreBuild, nota, resultado); 
} 
+0

감사의 말에 감사드립니다. 리스너를 살펴 보겠습니다. – elcharrua

+0

귀하의 프로필을 기반으로 - 그것은 당신이 upvote 또는 유용하게 찾을 때 대답을 받아들이면 좋네요, 이것은 사람들이 당신에게 어떤 대답을 줄 동기를 부여합니다 –

+0

미안하지만, 난 그게 나에게 알려주 덕분에 대답을 받아 들일 수 없다는 걸 깨닫지 못해. – elcharrua

관련 문제