如何从testNG/Selenium中获取@AfterMethod的测试结果状态?
2022-09-04 08:12:06
对于我正在做的研究,我需要在运行测试方法(@Test)后从@AfterMethod捕获结果状态(通过/失败)。
我一直在使用import org.testng.ITestResult;作为我的研究的一个出来,让我的工作更容易后去几个在线博客,但似乎它没有成功,我的期望总是结果输出通过,即使断言失败了。
我的代码如下:
public class SampleTestForTestProject {
ITestResult result;
@Test(priority = 1)
public void testcase(){
// intentionally failing the assertion to make the test method fail
boolean actual = true;
boolean expected = false;
Assert.assertEquals(actual, expected);
}
@AfterMethod
public void afterMethod() {
result = Reporter.getCurrentTestResult();
switch (result.getStatus()) {
case ITestResult.SUCCESS:
System.out.println("======PASS=====");
// my expected functionality here when passed
break;
case ITestResult.FAILURE:
System.out.println("======FAIL=====");
// my expected functionality here when passed
break;
case ITestResult.SKIP:
System.out.println("======SKIP BLOCKED=====");
// my expected functionality here when passed
break;
default:
throw new RuntimeException("Invalid status");
}
}
}
控制台中的结果:
[TestNG] Running: C:\Users\USER\AppData\Local\Temp\testng-eclipse--988445809\testng-customsuite.xml
======PASS=====
FAILED: testcaseFail
java.lang.AssertionError: expected [false] but found [true]
我的期望是将测试结果获取到变量以通过开关,如上面的代码片段中所示,并在测试方法失败时打印“======FAIL=====”。
有人能帮我抓住每种测试方法的执行测试结果(@Test)。如果我的方法是错误的,请帮我一个代码片段到正确的方法,好心。
提前感谢您