我在selenium webdriver中编写测试,在java中我使用TestNG将它与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很好用。
用于设置值的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);
}
答案 0 :(得分:1)
我认为原因是你永远不会遇到这种情况的其他障碍
Assert.assertTrue(test);
if(test){
resultado = TestLinkAPIResults.TEST_PASSED;
} else {
//
}
当Asser失败时,会出现新的AssertionError
,所以你永远不会使它成为if条件。您也无法捕获此错误,因为Exception
也来自Throwable
和Error
。所以你基本上可以删除条件并尝试捕获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);
}