У меня есть файл testNG.xml, который содержит 10 классов, но у меня есть список, который содержит 4 класса. Мне просто нужно сравнить и выполнить 4 тестовых примера, которые находятся в списке вместо того, чтобы выполнять все 10 в testNg.xml. Является ли это возможным ? дайте мне некоторое представление о том, как пропустить 6 классов в testNG.xmlКак пропустить класс, упомянутый в testNG.xml через программы
ответ
Как на запросе, ниже простой способ создания 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();
Если вам нужно выполнить требуемые классы, включите их в файл 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");
}
}
Спасибо, Мурали
Что вам нужно, это AnnotationTransformer
В вашей реализации AnnotationTransformer, вы можете в основном прочитать свой список методов, а затем проверить каждый метод TestNG испытания, что приходит в трансформаторные и изменить его атрибуты (в ваш случай, вам просто нужно добавить атрибут enabled = false) для аннотированного метода @Test, о котором идет речь, если его НЕ-метод, который вы ищете.
Here - пример реализации трансформатора аннотации, который я когда-то писал назад.
Я знал, что будет возможно создать testNG.xml динамически. Но есть ли способ создать динамический testNG.xml через данные Excel? любые примеры пожалуйста. Поскольку мы выполняем скрипты через testNG.xml, я не уверен, как сделать динамический testng.xml, а затем сделать его исполняемым. – ArrchanaMohan
см. Мой новый ответ ... спасибо –