【问题标题】:How to get failed tests details in selenium using IReporter?如何使用 IReporter 在 selenium 中获取失败的测试详细信息?
【发布时间】:2021-10-06 14:38:39
【问题描述】:

我有这个代码:

 int totalTestsCount = 0;
    int totalPassedTests = 0;
    int totalSkippedTests = 0;
    int totalFailedTests = 0;

    for (ISuite suite : suites) {
        Map<String, ISuiteResult> suiteResults = suite.getResults();
        for (ISuiteResult sr : suiteResults.values()) {
            ITestContext tc = sr.getTestContext();
            int passedTests = tc.getPassedTests().getAllResults().size();
            int skippedTests = tc.getSkippedTests().getAllResults().size();
            int failedTests = tc.getFailedTests().getAllResults().size();

            totalTestsCount += passedTests + skippedTests + failedTests;
            totalPassedTests += passedTests;
            totalSkippedTests += skippedTests;
            totalFailedTests += failedTests;
        }
    }

但现在我想获取有关每个失败测试的详细信息,例如:带有测试方法名称和异常的测试参数。 我该怎么做?

【问题讨论】:

    标签: java selenium selenium-webdriver automation testng


    【解决方案1】:

    根据测试文档https://javadoc.io/static/org.testng/testng/6.13/org/testng/IResultMap.html

    您可以获得失败测试的详细信息,例如:

        for (ISuite suite : suites) {
            Map<String, ISuiteResult> suiteResults = suite.getResults();
            for (ISuiteResult sr : suiteResults.values()) {
                ITestContext tc = sr.getTestContext();
                int passedTests = tc.getPassedTests().getAllResults().size();
                int skippedTests = tc.getSkippedTests().getAllResults().size();
                
                // First you can get failed tests results in Sete
                Set<ITestResult> failedTestResults = tc.getFailedTests().getAllResults();
                // Then you can use for loop inside that set
                for (ITestResult failedTestResult: failedTestResults) {
                     // According to here: // https://javadoc.io/static/org.testng/testng/6.13/org/testng/ITestResult.html
                    //To get failed test parameters
                    Object[] failedTestParameters = failedTestResult.getParameters();
                    // To get method name (Not sure on this, getMethod() also may work)
                    String methodName = failedTestResult.getName(); //(There is also //.getTestName())
                    // To get exception (Not sure about this)
                    Throwable exception = failedTestResult.getThrowable();
                    // You can do whatever you want with these
    }
                int failedTests = tc.getFailedTests().getAllResults().size();
                
    
                totalTestsCount += passedTests + skippedTests + failedTests;
                totalPassedTests += passedTests;
                totalSkippedTests += skippedTests;
                totalFailedTests += failedTests;
            }
        }
    

    如我所说,这里似乎有更多方法:https://javadoc.io/static/org.testng/testng/6.13/org/testng/ITestResult.html

    因此,您可以查看文档,并尝试查看适合您的方法。

    【讨论】:

      猜你喜欢
      • 2018-04-06
      • 2018-01-13
      • 2022-07-27
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多