2017-08-29 13 views
0

1つのパッケージにあるExcelの値を読み込むためのクラスを作成しました。また、testngの形式で別のクラスにあるログインを確認するクラスが1つあります。 私のReadExcelFile.javaは パッケージuatです。testng.xmlのパスに動的な値を与える方法

public class ReadExcelFile extends BeforeAfterSuite{ 

    @Test 
    @Parameters("filename") 
    public void readXLSXFile(String fileName) { 
     InputStream XlsxFileToRead = null; 
     XSSFWorkbook workbook = null; 
     try { 
      XlsxFileToRead = new FileInputStream(fileName); 

      //Getting the workbook instance for xlsx file 
      workbook = new XSSFWorkbook(XlsxFileToRead); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     //getting the first sheet from the workbook using sheet name. 
     // We can also pass the index of the sheet which starts from '0'. 
     XSSFSheet sheet = workbook.getSheet("Sheet1"); 
     XSSFRow row; 
     XSSFCell cell; 

     //Iterating all the rows in the sheet 
     Iterator rows = sheet.rowIterator(); 

     while (rows.hasNext()) { 
      row = (XSSFRow) rows.next(); 

      //Iterating all the cells of the current row 
      Iterator cells = row.cellIterator(); 

      while (cells.hasNext()) { 
       cell = (XSSFCell) cells.next(); 

       if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) { 
        System.out.print(cell.getStringCellValue() + " "); 
       } else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { 
        System.out.print(cell.getNumericCellValue() + " "); 
       } else if (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) { 
        System.out.print(cell.getBooleanCellValue() + " "); 

       } 
      } 
      System.out.println(); 
      try { 
       XlsxFileToRead.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 



} 

とTestNGのに私はパスと共にファイル名などのパラメータを渡したいが、私は移動中に後で予定場所は、共有パスにあるので、私は動的な値 を送信する代わりにハードコードされています。ここで

答えて

1

は、JVM引数は、実際の場所を受け入れfilenameを任意に言うと、提供されない場合はJVM引数のデフォルト値を定義しますが、それは

  • @Parameters
  • 活用への依存を削除するには方法です。

あなたのコードは次のように見ることができ

@Test 
public void readXLSXFile() { 
    //To provide a different value for the excel sheet, use the JVM argument: -Dfilename 
    //For e.g., -Dfilename=src/test/resources/anotherdata.xls 
    //If this JVM argument is not provided, 
    //then the file name is defaulted to src/test/resources/data.xls 
    String fileName = System.getProperty("filename", "src/test/resources/data.xls"); 
    InputStream XlsxFileToRead = null; 
    XSSFWorkbook workbook = null; 
    //Rest of the code goes here 
} 
以下
関連する問題