我想使用@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
如何判断TestNG此测试失败?我想使用@AfterMethod
所以如果我忘记在测试结束时放置sa.assertAll()
,我不必担心误报。
答案 0 :(得分:0)
您可以尝试:
@AfterMethod(alwaysRun = true)
public void afterMethod(ITestResult result) {
try {
sa.assertAll();
} catch(Throwable t) {
result.setStatus(FAILURE);
result.setThrowable(t);
}
}