gpt4 book ai didi

java - 如何在@AfterMethod 中获取TestNG/Selenium 的测试结果状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:06 24 4
gpt4 key购买 nike

对于我正在进行的研究,我需要在运行测试方法 (@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)的执行测试结果。如果我采用的方法有误,请帮助我提供正确方法的代码片段。

提前致谢

最佳答案

就去做吧

public class stacktest  {


@Test
public void teststackquestion() {

boolean actual = true;
boolean expected = false;
Assert.assertEquals(actual, expected);

}


@AfterMethod
public void afterMethod(ITestResult result)
{
try
{
if(result.getStatus() == ITestResult.SUCCESS)
{

//Do something here
System.out.println("passed **********");
}

else if(result.getStatus() == ITestResult.FAILURE)
{
//Do something here
System.out.println("Failed ***********");

}

else if(result.getStatus() == ITestResult.SKIP ){

System.out.println("Skiped***********");

}
}
catch(Exception e)
{
e.printStackTrace();
}

}

关于java - 如何在@AfterMethod 中获取TestNG/Selenium 的测试结果状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com