当前位置: 首页 > 知识库问答 >
问题:

要在我的testNG报告中显示的API断言失败消息

万俟穆冉
2023-03-14

我的测试方法中有多个断言(assertTrue),我想将断言失败传递给我的@AfterMethod,我的测试在该断言上失败,这样我就可以获得API测试失败的确切位置。有没有办法做到这一点?使用Rest assured,Maven&TestNG。

共有1个答案

赵锐
2023-03-14

每个@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());
    }
}
 类似资料:
  • 我一直在Eclipse中使用JUnit创建单元测试,我很清楚JUnit的基本原理。测试按应有的方式运行,现在是时候找到一种报告失败测试的好方法了。我在web上遇到的大多数例子都是使用某种构建的系统,如Ant、Maven或Hudson,在构建项目的同时运行测试,但在构建过程中不需要这种集成。测试应该能够独立于构建系统运行。最后,这些系统只需从JUnit获取信息,并将其放入一个漂亮的HTML布局中。

  • 我已经使用Maven project和Selenium&TestNG创建了我想从Jenkins执行的自动化脚本。在Jenkins中,我添加了TestNG插件来发布TestNG报告。但它没有显示出来。我得到以下提到的错误。 我已经尝试了以下选项,但对我来说不起作用。 > 尝试给出TestNG报告的完整路径。模式中的向前斜杠和向后斜杠。 通过更改TestNG结果文件路径,我尝试了其他不同的选项,但它对

  • 嗨,我有一个testNG类,它包含和语句。执行之后,我无法在生成的HTML报告中找到这些通过和失败的结果。我搜索了一下,发现这些可能不会显示在生成的报告中。所以我的问题是,如果testNG报告不提供此特性,那么在执行测试后,是否有其他报告可以在报告中找到这些数据?

  • 如果在测试运行期间,任何测试步骤抛出一个异常(如NosuChelementException),我希望testNG测试(@test)失败。(仅举个例子) 在当前场景中,我正在检查是否单击了特定的任务,然后在UI上的元素中出现了一些文本。但是最近AUT在单击任务时抛出了一个网络错误,因此包含我正在验证的文本的元素没有出现在UI上。因此webdriver引发了NosuChelementExceptio

  • 我有一个在2个变量上带有@Assert的实体: 显示不是很好看,我想通过添加一个CSS类来改进它。Symfony 5有可能做到这一点吗?怎样谢谢你的帮助!

  • 我在Behave中有Python bdd测试。使用1.2.6版本 我面临的问题是,Allure-behave将失败的诉讼报告为“已通过”,即使它确实显示了失败的一步,并将其报告为“已通过”。 我的功能文件夹中有一个Behave.ini,其中包含: null