Тестовый класс не работает должным образом из цикла в TestSuite ... в seleniumRC + JUNIT - PullRequest
1 голос
/ 01 июня 2011

Я использую SeleniumRC + Java + JUnit + Eclipse.

У меня есть тестовый класс как ABC, и я запускаю этот тестовый класс из TestSuite.Я выполняю определенные условия для запуска тестового класса, например:

  • В листе Excel у меня есть 3 столбца как colA, ColB, ColC и строки как Run, Username, Password.colA, ColB, ColC имеют значения в строке Run как Да, Нет, Да соответственно.

  • Мое условие: только когда столбец имеет значение «Да» в строке Run,тестовый класс выполнится, взяв соответствующее имя пользователя и пароль из этого столбца.

Но моя проблема в том, что каждый раз, когда цикл работает до последнего столбца со значением «Да» и выполняет тестовый класс для соответствующегоимя пользователя и пароль, игнорируя предыдущие столбцы со значением «Да». Почему это так?

Код для 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 голосов
/ 02 июня 2011

Я только что удалил:

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

И заменено suite.addTestSuite(ABC.class); на TestRunner.run(ABC.class);

Теперь все работает нормально.

...