我正在使用SeleniumRC + Java + JUnit + Eclipse。
我有一个测试类作为ABC,我正在从TestSuite运行这个测试类。我遵循某些条件来运行这样的测试类:
在excel表格中,我有3列作为colA,ColB,ColC,行为Run,Username,Password。 colA,ColB,ColC在运行行中的值分别为是,否,是。
我的条件是:只有当一行的值在“运行”行中具有“是”时,测试类才会执行该列中相应的用户名和密码。
但我的问题是,每次循环运行到最后一个“是”值列并执行相应用户名和密码的测试类,忽略之前的“是”值列。 为什么会这样?
TestSuite代码:
public class FinalTestSuite extends TestCase
{
public static File sourceFile = new File("C:/Selenium/selenium-remote-control-1.0.3/Data.xls");
public static WorkbookSettings ws;
public static WritableWorkbook workbook;
public static WritableSheet wSheet1, wSheet2;
public static Sheet sh1, sh2, sheetFinal;
public static Workbook sourceWorkbook;
public static Label label;
public Selenium selenium;
public static int colCount, rowCount;
public static int colNum;
public static int rowNum;
public static TestSuite suite() throws Exception
{
TestSuite suite = new TestSuite();
sourceWorkbook = Workbook.getWorkbook(sourceFile);
sheetFinal = sourceWorkbook.getSheet("Begin");
colCount = sheetFinal.getColumns();
System.out.println(colCount);
rowCount = sheetFinal.getRows();
System.out.println(rowCount);
for(int col=1;col<colCount;col++)
{
if((sheetFinal.getCell(col,1).getContents()).equalsIgnoreCase("yes"))
{
for(rowNum = 1;rowNum<=rowCount;rowNum++)
{
if((sheetFinal.getCell(0, rowNum-1).getContents()).equalsIgnoreCase("username"))
{
id = sheetFinal.getCell(col, rowNum-1).getContents();
}
else if((sheetFinal.getCell(0, rowNum-1).getContents()).equalsIgnoreCase("Password"))
{
pwd = sheetFinal.getCell(col, rowNum-1).getContents();
}
}
suite.addTestSuite(ABC.class);
}
}
return suite;
}
public static void main(String a)
{
TestRunner.run(ABC.class);
}
}
我在哪里出错了?
答案 0 :(得分:0)
我刚刚删除:
public static void main(String a)
{
TestRunner.run(ABC.class);
}
将suite.addTestSuite(ABC.class);
替换为TestRunner.run(ABC.class);
现在它工作正常。