API 断言失败消息将显示在我的 testNG 报告中
API assertion failure message to be displayed in my testNG report
我的测试方法中有多个断言 (assertTrue),我想将断言失败传递给我的@AfterMethod,在我的测试失败的断言上,这样我就可以得到我的 API 测试失败。有什么办法可以做到这一点?
使用放心,Maven & TestNG。
每个@AfterMethod
都可以接受一个ITestResult
作为参数,TestNG在执行过程中本机注入最后一个@Test
的测试结果。因此,您可以检查 ITestResult
对象,然后继续进行。
这是一个简单的示例
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
public class SampleTestClass {
@Test
public void passMethod() {
Assert.assertTrue(true);
}
@Test
public void failMethod() {
Assert.assertTrue(false);
}
@AfterMethod
public void afterMethod(ITestResult testResult) {
if (testResult.isSuccess()) {
return;
}
Throwable throwable = testResult.getThrowable();
StringWriter sw = new StringWriter();
PrintWriter writer = new PrintWriter(sw);
throwable.printStackTrace(writer);
System.err.println("****" + sw.getBuffer().toString());
}
}
我的测试方法中有多个断言 (assertTrue),我想将断言失败传递给我的@AfterMethod,在我的测试失败的断言上,这样我就可以得到我的 API 测试失败。有什么办法可以做到这一点? 使用放心,Maven & TestNG。
每个@AfterMethod
都可以接受一个ITestResult
作为参数,TestNG在执行过程中本机注入最后一个@Test
的测试结果。因此,您可以检查 ITestResult
对象,然后继续进行。
这是一个简单的示例
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
public class SampleTestClass {
@Test
public void passMethod() {
Assert.assertTrue(true);
}
@Test
public void failMethod() {
Assert.assertTrue(false);
}
@AfterMethod
public void afterMethod(ITestResult testResult) {
if (testResult.isSuccess()) {
return;
}
Throwable throwable = testResult.getThrowable();
StringWriter sw = new StringWriter();
PrintWriter writer = new PrintWriter(sw);
throwable.printStackTrace(writer);
System.err.println("****" + sw.getBuffer().toString());
}
}