Excel, используемый в поставщике данных testNG, использует старые данные, даже если предоставляются новые данные - PullRequest
0 голосов
/ 28 февраля 2019

Я использую dataprovider для чтения данных и преуспел в качестве входных данных для моего сценария селена.Я в основном добавляю системы в свое приложение.Ранее у меня было около 110 строк и 7 столбцов данных в Excel.Теперь я удалил это и добавил 1 строку и 7 столбцов данных в том же Excel, но скрипт все еще пытается добавить 110 систем.Я не понимаю, почему это происходит.

Это поставщик данных:

  @DataProvider (name= "systemData")
  public static Object[][] systemData() throws IOException
  {
      Object Data[][] = ExcelUtils.readData("D:\\Eclipse O\\Data\\addSystem\\AddSystem.xlsx", "AddSystem");
      return Data;
  }

}

А это excel excel

package Utility;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;

public class ExcelUtils
{
    WebDriver driver;
    WebDriverWait wait;
    static XSSFWorkbook workbook;
    static XSSFSheet sheet;
    static XSSFCell cell;

     @Test
     public static Object[][] readData(String sheetLocation, String sheetName) throws IOException
     {
         DataFormatter formatter = new DataFormatter();
         // Import excel sheet.
         File src=new File(sheetLocation);

         // Load the file.
         FileInputStream finput = new FileInputStream(src);

         // Load the workbook.
         workbook = new XSSFWorkbook(finput);

         // Load the sheet  in which data is stored.
         sheet= workbook.getSheet(sheetName);
         int RowNum = sheet.getPhysicalNumberOfRows();// count my number of Rows
         System.out.println("Number of rows is " +RowNum);

         int ColNum = sheet.getRow(0).getPhysicalNumberOfCells();
         System.out.println("Number of columns is " +ColNum);

         String Data[][]= new String[RowNum][ColNum];

         for (int i = 0; i < RowNum; i++) 
            {
             //System.out.println("First for loop entered");   
             XSSFRow row = sheet.getRow(i);
                for (int j = 0; j < ColNum; j++) 

                {
                    //System.out.println("Second for loop entered");
                    if (row == null) {
                        Data[i][j] = "";
                    System.out.println("row = null entered");
                    }
                    else {
                        XSSFCell cell = row.getCell(j);                 
                        if (cell == null) {
                            Data[i][j] = ""; 
                        System.out.println("Cell = null entered");
                        }
                        else {
                            String value = formatter.formatCellValue(cell);
                            Data[i][j] = value.trim();                        
                        }
                    }


                }
                }       
                return Data;
          } 
    }

1 Ответ

0 голосов
/ 28 февраля 2019

Отменить кеш и перезапустить при использовании Intellij.Сохраните файл Excel, удалите его из источника и добавьте снова.Попробуйте.

...