当前位置: 首页 > 知识库问答 >
问题:

当TestNG侦听器处于打开状态时,不执行Catch语句

夔修伟
2023-03-14
//Test Script 
public boolean loginVerification(String username, String password) {

        try {

            utilities.click(helloSignInLink, "elementToBeClickable");
            reportLog("debug","info","Clicked on SignIn link");

            utilities.sendText(loginID, username);
            reportLog("debug","info","Username entered");

            utilities.sendText(passwordID, password);
            reportLog("debug","info","Password entered");

            utilities.click(submit, "elementToBeClickable");
            reportLog("debug","info","Clicked on submit button");

            Thread.sleep(2000);

            isTrue = driver.getTitle().contains("Vectors");

        }

        catch(Exception e) {
            reportLog("debug","info","Unable to login with username : "+username+" , error message : "+e);
            isTrue = false;
        }

        return isTrue;

    }

共有1个答案

江嘉悦
2023-03-14

我建议捕获throwable-而不仅仅是exception。另一个问题是,当您捕获到某些内容时,异常并不会真正上升到堆栈中,因此TestNG永远不会知道您的测试中是否有任何错误,而test listener也不会检测到失败。有一种方法可以在您发现异常后将其进一步推进。如:

    catch(Throwable e) {
        reportLog("debug","info","Unable to login with username : "+username+" , error message : "+e);
        isTrue = false;
        throw e;
    }

你能纠正你的做法,让我们知道问题是否仍然存在?

附注。-我在你的代码中也看不到任何断言。Assert results或Exception定义测试结果。

 类似资料:
  • 方法正在传递,这太好了,但是为什么的结果会出现在库测试结果中,我不明白。我怎么才能避免呢? 我在这里列出了和的完整代码。

  • 我目前正在为一个包含大量模块的大项目创建TestNG测试用例。现有的大多数单元测试实际上都是集成测试,因为它们非常依赖于/opt文件夹中的配置文件以及正在运行的数据库和消息队列。 为了使事情进一步复杂化,测试用例使用配置位于resources/meta-inf/services/org.TestNG.itestnglistener文件中的TestNG侦听器。这个文件中的侦听器触发所有测试用例(正如

  • 我在我的一个工作流应用程序中使用了Camunda BPMN2.0。在我的一个服务任务中,我在start事件中创建了一个执行侦听器,在create事件中创建了一个任务侦听器。我不确定在开始时同时分配这些是否合适。如果是正确的,它们中的哪一个将首先执行--执行监听器或任务监听器,分别在start或create事件中执行?

  • 通过侦听器我们能监听到任何数值属性的数值更新。可能听起来很抽象,所以让我们先来看看使用GreenSock一个例子: <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js"></script> <div id="animated-number-demo"> <input v-model.

  • 我想试试阿帕奇骆驼断路器(http://camel.apache.org/load-balancer.html)模式。它不像我想的那样。 我的路线是这样的 主应用程序每秒向foo路由发送整数值为0到99的消息。 在使用12的消息时,foo路由抛出一个执行命令,请保持线路路由应该介入。5秒钟后,foo路线再次被询问,如果没有异常发生,foo路线将再次被询问。 休伯特

  • 在引导导航栏中,当导航链接各自的下拉菜单被打开或下拉菜单链接被悬停时,如何使导航链接激活(只需改变导航链接的bg颜色)?我尝试了以下代码 null null