Тестовый класс не запускается должным образом из цикла в TestSuite … в SeleniumRC JUNIT

#java #junit #selenium-rc

#java #junit #selenium-rc

Вопрос:

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

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

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

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

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

Код для 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. Я попытался немного прояснить ваш вопрос — пожалуйста, проверьте, что он по-прежнему говорит то, что вы хотели сказать.

Ответ №1:

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

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

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

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