如何修复数据驱动(DataProvider)中的stackOverFlow错误

时间:2019-05-02 10:10:04

标签: java maven selenium testng

我正在使用Excel数据表,因为我正在使用数据提供程序概念。对于更少的列/数据,我的代码可以正常工作。但是对于更多的列数或庞大的数据,我得到了StackOverFlowError。

我通过删除同一Excel工作表中的某些列来尝试了相同的代码,错误得到解决。但是,当我向该工作表中添加新列时,却遇到了相同的错误。

public class TestCase1{
@Test(dataProvider = "getData")
public void Test1(LinkedHashMap<String, List<Object>> map){
System.out.println("Test case is passed");
} 
@DataProvider 
public Object[][] getData() throws Exception {
String path = "sheetForTest.xlsx";
Object[][] testObjArray = 
ExcelManager.getExcelSingleUnitsAndMultipleValues(path,"Excel_Sheet1");
        return (testObjArray);
    }
}

1 个答案:

答案 0 :(得分:0)

请看以下文章,了解什么是stackOverFlow以及如何处理它:

What is a StackOverflowError?

对此没有“魔术”解决方案,您将必须深入,仔细地研究代码和堆栈跟踪,以了解可以在哪里进行改进。

我推荐的一件事是尝试将您想做的工作分成较小的部分,并根据您的需要以并行/顺序的方式在不同的过程中运行。