2015-12-15 2 views
1

Я пытаюсь прочитать данные из excel в методе @BeforeTest и пытаюсь напечатать то же самое в методе @Test в testNG. Я прочитал данные в листеКак передать переменную из BeforeTest в тестовую аннотацию

@BeforeTest 
    @Parameters({"filePath", "fileName", "sheetName"}) 
    public void readExcel(String filePath, String fileName, String sheetName) throws IOException, EncryptedDocumentException, InvalidFormatException{ 
     // set the file path 
     File eFile = new File(filePath+"\\"+fileName); 
     //print the file path 
     System.out.println("File is at: "+eFile); 

     FileInputStream inputstream = new FileInputStream(eFile); 

     // Read and publish extension 
     String extensionName = fileName.substring(fileName.indexOf(".")); 
     System.out.println("File type is: "+extensionName); 

     //Read the file 
     Workbook wb = new XSSFWorkbook(inputstream); 

     //Read the sheet name 
     Sheet wbSheet = wb.getSheet(sheetName); 

    } 

Я хотел бы передать wbSheet чтобы @test метод для печати и записи данных в Excel. @Parameters ищет константу, определенную в testng.xml. Как передать такую ​​переменную ..?

+1

Что относительно переменной объекта, то есть поля в тестовом классе? – Andremoniy

ответ

4

Почему бы не использовать переменную экземпляра?

class YourClassTest { 

    Sheet wbSheet; 

    @BeforeTest public void readExcel(...) { 
    wbSheet = wb.getSheet(sheetName); 
    } 

    @Test public void test() { 
    //you can use wbSheet here 
    } 

} 
Смежные вопросы