首页 > 解决方案 > 如何在@after 中使用 ITestResult 在 JUnit Maven 中扩展报告

问题描述

我正在尝试使用 JUnit Maven 在我的范围报告中捕获屏幕截图。

我能够生成报告,但 ITestResult 在 @After 的 JUnit Maven 中不起作用。如果有人可以帮助将代码从 TestNG 替换为 Junit,我将不胜感激。请在附件中找到我的代码。

@After public void tearDown(ITestResult result) throws IOException {

    if(result.getStatus()==ITestResult.FAILURE){
        String temp = Utility.getScreenshot(driver);
        logger.fail(result.getThrowable().getMessage(), MediaEntityBuilder.createScreenCaptureFromPath(temp).build());
    }

标签: mavenintellij-ideajunitreportextend

解决方案


我假设您使用的是 JUnit 5。

您必须基于接口实现自己的测试执行侦听器TestExecutionListener

在任何测试执行后将调用以下方法:

default void executionFinished​(TestIdentifier testIdentifier,
                               TestExecutionResult testExecutionResult){

  if(testExecutionResult.getStatus() == TestExecutionResult.Status.FAILED){
    // your code here
  }
}

推荐阅读