首页 > 解决方案 > 仅当我的 @Test 通过时才运行 @AfterMethod,而不是在 @Test 失败时运行

问题描述

我的afterMethod包括:

@AfterMethod(groups = { "Regression" })
public void afterMethod() {
    // Setting driver used to false as this test case is pass
    driverUsed.put("supportDriver", false);
    System.out.println("Test case is pass");
}

我把司机放在哪里false

但我只想afterMethod在我@Test通过时运行它,而不是在@test失败时运行。

标签: javaseleniumtestng

解决方案


引用TestNG 的文档

任何@AfterMethod方法都可以声明一个类型为 的参数ITestResult,这将反映刚刚运行的测试方法的结果。

您可以使用此参数来检查测试是否成功:

@AfterMethod(groups = { "Regression" })
public void afterMethod(ITestResult result) {
   if (result.getStatus() == ITestResult.SUCCESS) {
        // Setting driver used to false as this test case is pass
        driverUsed.put("supportDriver", false);
        System.out.println("Test case is pass");
   }
}

推荐阅读