java - 获取 "java: incompatible types: java.lang.Object cannot be converted to org.testng.ISuiteResult"

标签 java selenium-webdriver

我已经使用reportNg为我的自动化框架生成了结果报告,但这似乎并不方便,因为它没有在结果中显示测试用例描述。因此,我尝试使用 IReporter 接口(interface)生成自定义的 html 结果报告,但出现以下错误:

java:不兼容的类型:java.lang.Object 无法转换为 org.testng.ISuiteResult

使用以下代码时:

import java.util.List;
import java.util.Map;
import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ISuiteResult;
import org.testng.ITestContext;
public class CustomReporter implements IReporter {
    @Override
    public void generateReport(List xmlSuites, List suites,
                               String outputDirectory) {
        //Iterating over each suite included in the test
        for (ISuite suite : suites) {
           //Following code gets the suite name
            String suiteName = suite.getName();
            //Getting the results for the said suite
            Map suiteResults = suite.getResults();
            for (ISuiteResult sr : suiteResults.values()) { //issue comes here
                ITestContext tc = sr.getTestContext();
                System.out.println("Passed tests for suite '" + suiteName +
                                   "' is:" + tc.getPassedTests().getAllResults().size());
                System.out.println("Failed tests for suite '" + suiteName +
                                   "' is:" +
                                   tc.getFailedTests().getAllResults().size());
                System.out.println("Skipped tests for suite '" + suiteName +
                                   "' is:" +
                                   tc.getSkippedTests().getAllResults().size());
            }
        }
    }
}

最佳答案

您在此处使用原始 Map 类型:

Map suiteResults = suite.getResults();

您应该指定类型参数:

Map<String, ISuiteResult> suiteResults = suite.getResults();

或者考虑到您除了下一行之外没有使用该变量,只需内联它:

for (ISuiteResult sr : suite.getResults().values())

您也需要对方法签名执行相同的操作:

public void generateReport(
    List<XmlSuite> xmlSuites,
    List<ISuite> suites,
    String outputDirectory)

org.testng.IReporter documentation 匹配...

关于java - 获取 "java: incompatible types: java.lang.Object cannot be converted to org.testng.ISuiteResult",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269108/

相关文章:

java - [Hive]查询hive数据库时得到 "ArrayIndexOutOfBoundsException"

java - Cordova插件错误

java - 如何获得最大值作为返回?

python - 如何从 Selenium 中获取 img

ruby - 如何使用 selenium-webdriver 获取第三个最后值 boo?

gwt - GWK Google Web Toolkit 是否需要客户端浏览器上的 Java?

java - 使用单例 MainActivity?

selenium-webdriver - 是否可以在远程浏览器上使用头部运行 Protractor 测试?

selenium - 无法使用浏览器堆栈运行我的 Selenium 代码

java - 在 web 元素中查找动态样式属性