Java 如何通过程序跳过testNG.xml中提到的类

Java 如何通过程序跳过testNG.xml中提到的类,java,selenium,testng,Java,Selenium,Testng,我有一个testNG.xml文件,其中包含10个类,但我有一个列表,其中包含4个类。我只需要比较并执行列表中的4个测试用例,而不是执行testNg.xml中的所有10个。可能吗?请告诉我如何跳过testNG.xml中的6个类,如果您想执行所需的类,请将它们包含在testNG.xml文件中,因为我不确定您为什么不能尝试此操作 一般来说,我更喜欢从excel文件中读取执行所需的类,并通过脚本构建xml文件。信息 无论如何,根据您的要求,您可以根据您的条件使用skipexecution跳过测试 @Te

我有一个testNG.xml文件,其中包含10个类,但我有一个列表,其中包含4个类。我只需要比较并执行列表中的4个测试用例,而不是执行testNg.xml中的所有10个。可能吗?请告诉我如何跳过testNG.xml中的6个类,如果您想执行所需的类,请将它们包含在testNG.xml文件中,因为我不确定您为什么不能尝试此操作

一般来说,我更喜欢从excel文件中读取执行所需的类,并通过脚本构建xml文件。信息

无论如何,根据您的要求,您可以根据您的条件使用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");
     }
    }
谢谢,,
Murali

根据要求,下面是使用excel数据创建testng.xml的简单方法

假设在excel文件的第0页中,我将编写所有状态为“Y/N”的类,表示是否可执行。所以,工作表中的第一行(i=0)只是在单元格0中具有作为测试用例的头,在单元格1中具有可执行性

如果i=1中任意行的单元格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();
//TODO自动生成的方法存根
XmlSuite=newxmlsuite();
套件名称(“TmpSuite”);
XmlTest=新的XmlTest(套件);
测试集名称(“TmpTest”);
列表类=新的ArrayList();
列表套件=新的ArrayList();
FileInputStream文件=新的FileInputStream(新文件(“D:\\TestCases.xlsx”);
XSSF工作簿=新XSSF工作簿(文件);
XSSFSheet sheet=workbook.getSheetAt(0);
对于(inti=1;i您需要的是

在AnnotationTransformer实现中,您基本上可以读取方法列表,然后检查进入Transformer的每个TestNG测试方法并更改其属性(在您的情况下,您只需要添加属性enabled=false)如果@Test注释的方法不是您正在寻找的方法,那么它就是有问题的方法


是我以前写过的一个示例注释转换器实现。

我知道动态创建testNG.xml是可能的。但是有没有办法通过excel工作表数据创建动态testNG.xml?请提供任何示例。因为我们是通过testNG.xml执行脚本的,所以我不确定如何创建动态testNG.xml然后使其可执行。