【发布时间】:2017-06-12 18:25:07
【问题描述】:
在 selenium 中,作为使用 testng 的混合框架的一部分,如果在 excel 表中针对该测试用例设置了“否”,则应跳过该用例。
注意:测试用例名和方法名也一样。
情况如下: 我正在使用 TestNG 的 BeforeMethod 和 Test 注释。而在excel表中,我有这样的
TCID Description Runmode TestCaseA1 vvvvvvvvvvvvvvvv N TestCaseA2 vvvvvvvvvvvvvvvv Y
由于第一个 case 设置为 No,即使设置为 Yes,下一个 case 也会被跳过。
以下是代码。请提供问题的解决方案。
@BeforeMethod
public void checkTestSkip(Method method) throws IOException{
intialise();//to load the properties
String testName = method.getName();
if (!testUtil.isTestCaseRunnable(SuiteAXls,testName)) {
App_Logs.info("Skipping the case as set to No");
throw new SkipException("Skipping the case as set to No");
}
else {
App_Logs.info("Not Skipping");
}
}
@Test(priority=1)
public void TestCaseA1(){
System.out.println("test case A1");
}
@Test(priority=2)
public void TestCaseA2(){
System.out.println("test case A11");
}
}
********************************************
public static boolean isTestCaseRunnable(Xls_Reader xls,String testName){
boolean runmode=false;
int rwcnt=xls.getRowCount("Test Cases");
for(int j=2;j<=rwcnt;j++){
//for(int i=0;i<method.length;i++){
//System.out.println(method[i].getName());
System.out.println(xls.getCellData("Test Cases","TCID",j));
if(testName.equals(xls.getCellData("Test Cases","TCID",j))){
if(xls.getCellData("Test Cases","Runmode",j).equals("Y")){
System.out.println("runmode is yes");
runmode=true;
break;
}else{
System.out.println("runmode is false");
runmode=false;
break;
}
}
}
return runmode;
}
【问题讨论】:
-
粘贴日志。由于您的默认值为 false,我怀疑它甚至没有进入逻辑循环。
标签: java excel selenium testng