java - 多重断言验证处理

标签 java selenium-webdriver testng testlink

在我下面的测试方法中,该方法有多个断言。我希望它能够运行,以便如果所有断言都通过,那么它将在我的测试管理工具中将状态记录为“通过”(我们正在将 Test Link 与 Selenium 集成)

但是,如果任何一个断言失败,则 testNG 会生成断言错误;在这种情况下,我无法将 TMT 中的状态更新为“失败”,因为该方法的执行已停止,并且已继续执行下一个方法。

请提供一些帮助来解决此问题。

Test(dataProvider = "User_login")
public void StatusForm_Verification(String uname, String pwd)
        throws InterruptedException {
    NavigateToLogin();
    Dashboard RD = LoginAs_user(uname, pwd);
    Thread.sleep(2000);

        if (Integer.parseInt(ReviewedStatuscount) >= 1) {

            Assert.assertEquals("true",
                    revui.Btn_SaveReview.getAttribute("disabled"));
            Assert.assertEquals("true",
                    revui.Btn_submitReview.getAttribute("disabled"));
            Assert.assertEquals("true",
                    revui.Btn_Needmoreinfo.getAttribute("disabled"));
            status = TestLinkAPIResults.PASSED;

        } else {
            throw new SkipException(
                    "Test Skipping - Reviewed count is Zero");
        }
    }

我的问题是:如果任何一个断言失败,那么如何在 TeSTLink 应用程序中将状态更新为“失败”(即状态 = TestLinkAPIResults.FAILED)?

最佳答案

您可以使用@after并在测试执行后检查状态

@After
public void statusCheck() {
    if (status!=TestLinkAPIResults.PASSED) {
        status = TestLinkAPIResults.FAILED;
    }
}

关于java - 多重断言验证处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811707/

相关文章:

java - 即使从应用程序注销后,单击后退按钮,它也会记录到之前登录浏览器的用户吗?

java - 了解用于定义 Spring Security bean 的 java 8 lambda 表达式

java - 如何编写显式等待,直到找到特定的 WebElement

c# - Selenium 错误 - 对远程 WebDriver 的 HTTP 请求在 60 秒后超时

java - 如何使用 Selenium 单击安全警告对话框中的选项?

xml - 如何为 Maven 项目批量运行 testng .xml 文件

java - 当字符串长度变化时使用 String.format()

java - 在 Spring DTO 中发布包含可变大小数组的 JSON 对象时要使用的字段?

java - junit TestWatcher 失败和完成的方法触发时间

java - 断言处理在 "console"和 "result of running suite"中给出不同的结果