我有一个testNG.xml文件,其中包含10个类,但我有一个包含4个类的列表。我只需要比较并执行列表中的4个测试用例,而不是在testNg.xml中执行所有10个测试用例。可能吗 ?让我知道如何跳过testNG.xml中的6个类
答案 0 :(得分:1)
根据要求,以下是通过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();
答案 1 :(得分:0)
如果你要执行所需的类,那么将它们包含在TestNG.xml文件中,因为我不知道为什么你不能尝试这个。
通常我更喜欢读取excel文件执行所需的类,并通过脚本编译构建xml文件。信息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");
}
}
谢谢你, 穆拉利
答案 2 :(得分:0)
在AnnotationTransformer实现中,您基本上可以读取方法列表,然后检查变换器中的每个TestNG Test方法并更改其属性(在您的情况下,您只需要添加属性enabled = false)对于@Test带注释的方法,如果它不是您正在寻找的方法..
Here是我在某个时候写过的示例注释转换器实现。