gpt4 book ai didi

java - 从 TestNG 中的@afterMethod 将堆栈跟踪写入范围报告

转载 作者:行者123 更新时间:2023-12-04 12:47:45 24 4
gpt4 key购买 nike

在 TestNG 的 @afterMethod 中,我想捕获堆栈跟踪并将其包含在范围报告中,但是,我找不到好的解决方案。我意识到打印堆栈跟踪有大量线程,但没有一个线程能满足我的需求。我想要导致失败的方法和行号。我不在乎堆栈跟踪是否很大,因为我希望能够看到导致失败行的原因。

这是我写入 Extent Reports 的示例:

    @AfterMethod(alwaysRun = true)
public void afterMethod(ITestResult result, Method method) throws InterruptedException {

ExtentTest test = ExtentTestManager.getTest();

// Get thread id
long id = Thread.currentThread().getId();

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

String os = StoredVariables.getos().get();

String resultStatus = "";
// Write passing tests to Extent Reports
if (result.getStatus() == ITestResult.SUCCESS) {
test.log(LogStatus.PASS, "<span class='label success'>" + result.getName() + "</span>");
resultStatus = "Passed";
StoredVariables.getfailedTest().set(false);
}

// Write failing tests to Extent Reports
if (result.getStatus() == ITestResult.FAILURE) {
test.log(LogStatus.FAIL, "<span class='label failure'>" + result.getName() + "</span>", "<pre>Results = " + result.getThrowable().getCause() + "\n\n" + result.getThrowable().getMessage() + "</pre>");
resultStatus = "Failed";
StoredVariables.getfailedTest().set(true);
}

System.out.println("TEST RESULT: " + method.getName() + " - Thread " + id + " = " + resultStatus);

Thread.currentThread().getStackTrace() 只是给我“[Ljava.lang.StackTraceElement;@2e1ef60”

通过提供以下内容直接打印出 ItestResult 结果 让我更接近,但没有行号:

[TestResult name=functionChecks status=FAILURE method=ExampleScripts.functionChecks()[pri:0, instance:_exampleScripts.ExampleScripts@731a74c] output=Completed executing following method : ExampleScripts.functionChecks]

最佳答案

idk 如果这有帮助,但这对我有用......这是来 self 的 TestListener 基类:

@Override
public void onTestFailure(ITestResult iTestResult){
ExtentTestManager.getTest().log(LogStatus.FAIL,iTestResult.getThrowable().toString());
}

关于java - 从 TestNG 中的@afterMethod 将堆栈跟踪写入范围报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984475/

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