【问题标题】:Webdriver- Java- TestNGHow can I mark the test as Fail after running all ClassesWebdriver-Java-TestNG如何在运行所有类后将测试标记为失败
【发布时间】:2015-03-07 14:42:55
【问题描述】:

所以,我正在使用 Selenium Webdriver-Java。

我有四个文件

Setup.java 我在哪里设置 selenium 服务器和 Firefox 浏览器并停止它们。

login.java:用于测试登录页面中一些css属性的类

Logout.java:用于测试注销的类

Main.java 我在这里调用 Setup.java、login.java 和 logout.java


我在 Login 和 Logout 类中使用 softassert 方法,比如

SoftAssert s_assert = new SoftAssert();
s_assert.assertEquals(fontSize, "13px", "BANNER Font size Test");

我在文件中有很多软断言,我做了一个

s_assert.assertAll();

在 TestNG 报告中将其标记为失败

  • 问题是,如果 Login 类中的任何断言失败,则不会执行 Logout 类。有没有办法 s_assert.assertAll();在我调用@test 下所有函数的主类中?

提前致谢!

沙里奥

【问题讨论】:

    标签: java selenium webdriver testng


    【解决方案1】:

    最好的方法是创建字符串变量来在类中携带消息。

    例如 String errorMessages = null;

    使用 Try catch 块捕获断言错误并将错误消息存储在变量中。

    try{
    SoftAssert s_assert = new SoftAssert();
    s_assert.assertEquals(fontSize, "13px", "BANNER Font size Test");
    }catch(AssertionError ae){
    if(errorMessages == null) errorMessgaes = "";
    errorMessages += ae.getMessage();
    }
    //Code to execute logout
    

    退出后扔掉。

    throw new Exception(yourStringVariable);
    

    这样您可以通知 TestNG 有关错误,它会将您的测试标记为失败。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-10-06
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多