测试类没有在TestSuite中的循环中正常运行...在seleniumRC + JUNIT中

时间:2011-06-01 10:02:37

标签: java junit selenium-rc

我正在使用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);
    }

}

我在哪里出错了?

1 个答案:

答案 0 :(得分:0)

我刚刚删除:

public static void main(String a)
{
    TestRunner.run(ABC.class);
}

suite.addTestSuite(ABC.class);替换为TestRunner.run(ABC.class);

现在它工作正常。