2016-02-29 4 views
2

У меня есть файл testNG.xml, который содержит 10 классов, но у меня есть список, который содержит 4 класса. Мне просто нужно сравнить и выполнить 4 тестовых примера, которые находятся в списке вместо того, чтобы выполнять все 10 в testNg.xml. Является ли это возможным ? дайте мне некоторое представление о том, как пропустить 6 классов в testNG.xmlКак пропустить класс, упомянутый в testNG.xml через программы

ответ

1

Как на запросе, ниже простой способ создания testng.xml данными Excel.

Предположим, что в файле excel, лист 0, я собираюсь написать все классы со статусом Y/N, т.е. исполняемым или нет. поэтому первая строка (i = 0) в листе - это не что иное, как заголовок в качестве тестового примера в ячейке 0 и исполняемый элемент в ячейке 1.

Если ячейка 1 любой строки из i = 1 ничего, кроме класса, имеющего исполняемый как Y, то мне нужно добавить этот класс в свой тест, а затем этот тест для моего пакета, наконец, должен выполнить этот пакет.

// TODO Auto-generated method stub 

    XmlSuite suite = new XmlSuite(); 
    suite.setName("TmpSuite"); 

    XmlTest test = new XmlTest(suite); 
    test.setName("TmpTest"); 
    List<XmlClass> classes = new ArrayList<XmlClass>(); 
    List<XmlSuite> suites = new ArrayList<XmlSuite>(); 

    FileInputStream file=new FileInputStream(new File("D:\\TestCases.xlsx")); 

    XSSFWorkbook workbook=new XSSFWorkbook(file); 

    XSSFSheet sheet=workbook.getSheetAt(0); 

    for(int i=1; i<sheet.getPhysicalNumberOfRows(); i++){ 

     if(sheet.getRow(i).getCell(1).getStringCellValue().equals("Y")){ 


      classes.add(new XmlClass(sheet.getRow(i).getCell(0).getStringCellValue())); 

     } 

    } 

    test.setXmlClasses(classes) ; 
    suites.add(suite); 
    TestNG tng = new TestNG(); 
    tng.setXmlSuites(suites); 
    tng.run(); 
0

Если вам нужно выполнить требуемые классы, включите их в файл TestNG.xml, так как я не уверен, почему вы не можете попробовать это.

Обычно я предпочитаю читать необходимые классы, необходимые для исполнения из файла excel и создания xml-файла с помощью скриптов. info here

Во всяком случае, согласно вашему требованию, вы можете использовать skipexecution, чтобы пропустить тест в соответствии с вашим условием.

@Test 
public void testCaseSkipException(){ 
    //if my condition is true then i will going to below skipException to skip execution 
     if(your_condition){ 
     throw new SkipException("Skipping this exception"); 
    } 
    } 

Спасибо, Мурали

+0

Я знал, что будет возможно создать testNG.xml динамически. Но есть ли способ создать динамический testNG.xml через данные Excel? любые примеры пожалуйста. Поскольку мы выполняем скрипты через testNG.xml, я не уверен, как сделать динамический testng.xml, а затем сделать его исполняемым. – ArrchanaMohan

+0

см. Мой новый ответ ... спасибо –

0

Что вам нужно, это AnnotationTransformer

В вашей реализации AnnotationTransformer, вы можете в основном прочитать свой список методов, а затем проверить каждый метод TestNG испытания, что приходит в трансформаторные и изменить его атрибуты (в ваш случай, вам просто нужно добавить атрибут enabled = false) для аннотированного метода @Test, о котором идет речь, если его НЕ-метод, который вы ищете.

Here - пример реализации трансформатора аннотации, который я когда-то писал назад.