【问题标题】:Testng fails to record test failuresTestng 无法记录测试失败
【发布时间】:2021-08-02 08:45:22
【问题描述】:

我使用 testng 来运行测试用例。 ITestResult 监听器用于捕获测试状态,在 after 方法中给出。请帮助为什么 testng 没有记录测试失败?

【问题讨论】:

  • 请提供更多详细信息。您到底在使用什么、任何错误、正在使用的代码等进行调试。
  • ITestResult 收集测试失败。也许这个帖子可以帮助你找出答案:stackoverflow.com/questions/68601316/…

标签: selenium-webdriver frameworks testng listener testng.xml


【解决方案1】:

如果你想对失败的测试进行截图,下面的代码可能会对你有所帮助。

  1. 你必须在你的 xml 测试套件中配置监听器

    <listeners>
        <listener class-name="package.your.listener.ScreenshotListener" />
    </listeners>
    
  2. 实现你的监听器

    公共类 ScreenshotListener 扩展 TestListenerAdapter {

    @Override
    public void onTestFailure(ITestResult result) {
        super.onTestFailure(result);
    
        if (!result.isSuccess()) {
    
            WebDriver driver = getDriverByResult(result);
            String methodName = result.getName();
    
            try {
    
                File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
                String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "/target/surefire-reports";
                File destFile = new File(reportDirectory + "/failure_screenshots/"
                        + buildFileNameByMethod(methodName)+ ".png");
    
                FileUtils.copyFile(scrFile, destFile);
                Reporter.log("<a href='" + destFile.getAbsolutePath() + "'> <img src='" + destFile.getAbsolutePath() + "' height='100' width='100'/> </a>");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多