DataDrivenFramwork - Module 20 - Year 2015 release | Selenium Forum
M
Posted on 19/07/2016
Hello, I am doing the the same things shown in module 20 year 2015 part 5. Even if my run mode is Y(Yes), it throws SkipException in all testCases

I cannot solve this ::(( Need Help

********************************************************************************************
Utility.java
*******************************************************************************************
package com.selenium.framework.datadriven.util;

import java.util.Hashtable;

public class Utility {

// test suite is runnable
public static boolean isSuiteRunnable(String suiteName, Xls_Reader xls){
int rows = xls.getRowCount(Constants.SUITE_SHEET);

for(int rNum=2;rNum<=rows;rNum++){
String data = xls.getCellData(Constants.SUITE_SHEET, Constants.SUITENAME_COL, rNum);
if(data.equals(suiteName)){
String runmode = xls.getCellData(Constants.SUITE_SHEET, Constants.RUNMODE_COL, rNum);
if(runmode.equals("Y"))
return true;
else
return false;
}
}

return false;
}

public static boolean isTestCaseRunnable(String testCase, Xls_Reader xls){
int rows = xls.getRowCount(Constants.TESTCASES_SHEET);
for(int rNum=2;rNum<=rows;rNum++){
String testNameXls = xls.getCellData(Constants.TESTCASES_SHEET, Constants.TESTCASES_COL, rNum);
if(testNameXls.equals(testCase)){
String runmode = xls.getCellData(Constants.TESTCASES_SHEET, Constants.RUNMODE_COL, rNum);
if(runmode.equals(Constants.RUNMODE_YES))
return true;
else
return false;
}
}
return false;// default
}

public static Object[][] getData(String testName, Xls_Reader xls){
int rows = xls.getRowCount(Constants.DATA_SHEET);
System.out.println("Total rows - "+ rows);

// row number for testCase
int testCaseRowNum=1;
for(testCaseRowNum=1;testCaseRowNum<=rows;testCaseRowNum++){
String testNameXls = xls.getCellData(Constants.DATA_SHEET, 0, testCaseRowNum);
if(testNameXls.equalsIgnoreCase(testName))
break;
}
System.out.println("Test Starts from row Number - "+ testCaseRowNum);
int dataStartRowNum=testCaseRowNum+2;
int colStartRowNum=testCaseRowNum+1;

// rows of data
int testRows=1;
while(!xls.getCellData(Constants.DATA_SHEET, 0, dataStartRowNum+testRows).equals("")){
testRows++;
}
System.out.println("Total rows of data are - "+testRows);

// cols of data
int testCols=0;
while(!xls.getCellData(Constants.DATA_SHEET,testCols,colStartRowNum).equals("")){
testCols++;
}
Object[][] data = new Object[testRows][1];
int r=0;
for(int rNum=dataStartRowNum;rNum<(dataStartRowNum+testRows);rNum++){
Hashtable<String,String> table = new Hashtable<String,String>();
for(int cNum=0;cNum<testCols;cNum++){
//System.out.println(xls.getCellData(Constants.DATA_SHEET, cNum, rNum));
//data[r][cNum]=xls.getCellData(Constants.DATA_SHEET, cNum, rNum);
table.put(xls.getCellData(Constants.DATA_SHEET, cNum, colStartRowNum), xls.getCellData(Constants.DATA_SHEET, cNum, rNum));
}
data[r][0]=table;
r++;
}
// 0,0 , 0,1
// 1,0 , 1,1
return data;

}

}
**********************************************************************************************
TestBase.java
************************************************************************************
package com.selenium.framework.datadriven;

import org.testng.SkipException;

import com.selenium.framework.datadriven.util.Constants;
import com.selenium.framework.datadriven.util.Utility;
import com.selenium.framework.datadriven.util.Xls_Reader;

public class TestBase {

public void validateRunmodes(String testName, String suiteName, String dataRunmode){

//Suite runmode
boolean issuiteRunmode=Utility.isSuiteRunnable(suiteName, new Xls_Reader("C:\\DataDrivenFrameWork\\Suite.xlsx"));
boolean testRunmode=Utility.isSuiteRunnable(testName, new Xls_Reader("C:\\DataDrivenFrameWork\\"+suiteName +".xlsx"));
boolean dataSetRunmode = false;
if(dataRunmode.equals(Constants.RUNMODE_YES))
dataSetRunmode = true;

if(!(issuiteRunmode && testRunmode && dataSetRunmode)){
throw new SkipException("Skipping the test " + testName + "inside the suite " + suiteName);
}

}

}
**************************************************************************
Test1.java
************************************************************************
package com.selenium.framework.datadriven.suiteA;

import java.util.Hashtable;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import com.selenium.framework.datadriven.TestBase;
import com.selenium.framework.datadriven.util.Constants;
import com.selenium.framework.datadriven.util.Utility;
import com.selenium.framework.datadriven.util.Xls_Reader;

public class Test1 extends TestBase {

@Test(dataProvider = "getData")
public void test1(Hashtable<String,String> table){

validateRunmodes("Test1", "SuiteA", table.get(Constants.RUNMODE_COL));
}

@DataProvider
public Object[][] getData(){
Xls_Reader xls1 = new Xls_Reader("C:\\DataDrivenFrameWork\\SuiteA.xlsx");

return Utility.getData("Test1", xls1);

}
}
**********************************************************************************
Consol
**********************************************************************************
[TestNG] Running:
C:\Users\Admin\AppData\Local\Temp\testng-eclipse--1601163925\testng-customsuite.xml

Total rows - 26
Test Starts from row Number - 1
Total rows of data are - 3
SKIPPED: test1({Col3=C33, Col2=C22, Col1=C11, Runmode=Y, Result=})
org.testng.SkipException: Skipping the test Test1inside the suite SuiteA
at com.selenium.framework.datadriven.TestBase.validateRunmodes(TestBase.java:21)
at com.selenium.framework.datadriven.suiteA.Test1.test1(Test1.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:782)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
at org.testng.SuiteRunner.run(SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)

SKIPPED: test1({Col3=C34, Col2=C23, Col1=C21, Runmode=N, Result=})
org.testng.SkipException: Skipping the test Test1inside the suite SuiteA
at com.selenium.framework.datadriven.TestBase.validateRunmodes(TestBase.java:21)
at com.selenium.framework.datadriven.suiteA.Test1.test1(Test1.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:782)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
at org.testng.SuiteRunner.run(SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)

SKIPPED: test1({Col3=C35, Col2=C24, Col1=C31, Runmode=Y, Result=})
org.testng.SkipException: Skipping the test Test1inside the suite SuiteA
at com.selenium.framework.datadriven.TestBase.validateRunmodes(TestBase.java:21)
at com.selenium.framework.datadriven.suiteA.Test1.test1(Test1.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:782)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
at org.testng.SuiteRunner.run(SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)


===============================================
Default test
Tests run: 3, Failures: 0, Skips: 3
===============================================


===============================================
Default suite
Total tests run: 3, Failures: 0, Skips: 3
===============================================

[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@4824aa59: 36 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@189fab56: 54 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@5a7226e3: 42 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@48b5b13a: 8 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 7 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@64617029: 5 ms

M
Replied on 19/07/2016

This is solved
Thank you Responsive image