检查@AfterMethod中的软断言

时间:2015-11-12 15:55:54

标签: testng

我想使用@AfterMethod检查TestNG中的Soft Assertions。我想做这样的事情:

SoftAssert sa;

@BeforeMethod(alwaysRun=true)
public void beforeMethod() {
    sa = new SoftAssert();
}

@Test
public void test1() {
    sa.assertTrue(false);
}

@Test
public void test2() {
    sa.assertTrue(false);
}

@AfterMethod(alwaysRun = true)
public void afterMethod() {
    sa.assertAll();
}

问题是TestNG将此标记为1次测试通过,1次配置失败:

  

默认测试
  测试运行:2,失败:0,跳过:1
      配置失败:2,跳过:1

enter image description here

如何判断TestNG此测试失败?我想使用@AfterMethod所以如果我忘记在测试结束时放置sa.assertAll(),我不必担心误报。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

@AfterMethod(alwaysRun = true)
public void afterMethod(ITestResult result) {
    try {
        sa.assertAll();
    } catch(Throwable t) {
        result.setStatus(FAILURE);
        result.setThrowable(t);
    }
}