Перейти к содержимому

Фотография

Selenium+Java+IDEA Как запустить несколько тестов подряд


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 vplav

vplav

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 25 января 2012 - 12:07

Помогите разобраться новичку!
Есть пачка тестов такого вида:

public class CheckUnited extends AbstractSeleniumTest
{
    public void test() throws Exception
    {

        openTransaction();
      createAdmin("user", "pass");
        commitTransaction();

       
        selenium.start();
        selenium.setSpeed(Settings.SELENIUM_SPEED);
        selenium.windowMaximize();
        loginAdmin("user", "pass");
       
        selectLeftTab("Users");
        selenium.click(locateButtonByText("Add"));
       
...
...

        selenium.stop();

Вопрос: как запустить их последовательно, чтобы не мучиться с запуском каждого по отдельности?

Пытался сделать по паттерну Фабрика, однако номер не прошел.
Уверен, есть более цивилизованные методы.
  • 0

#2 biomaks

biomaks

    Постоянный участник

  • Members
  • PipPipPip
  • 171 сообщений
  • Город:Москва


Отправлено 25 января 2012 - 12:19

используйте junit или testng

а как вы верифицируете результат, если не секрет?
  • 0

#3 vplav

vplav

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 25 января 2012 - 12:26

junit тут и используется для верификации результата

assertEquals();

------

запуск - по кнопке Run IDEA,
пакет писал не я, и мне кажется то, как он написан - не лучший вариант
  • 0

#4 biomaks

biomaks

    Постоянный участник

  • Members
  • PipPipPip
  • 171 сообщений
  • Город:Москва


Отправлено 25 января 2012 - 12:59

если используете junit обратитесь к первоисточнику сюда например: http://junit.sourcef...faq.htm#tests_1
  • 0

#5 vplav

vplav

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 25 января 2012 - 13:36

спасибо за ссылку, познавательно.

Однако, почему-то у моих тестов нет аннотаций @Test

а исполняются как тесты только методы, в названии которых присутствует слово "test"

и самих тестов порядка 200 и каждый отдельным классом, в каждом классе присутствует метод test(){...}
предлагается вручную нажимать на кнопку Run


из-за количества тестов вот так сделать не получится, даже если разберусь откуда взялись аннотации
public class MyTestCase {
    // Local variables become instance variables

    @Before
    public void setUp() {
        // Set up for the test, manipulating instance variables
    }
    
    @Test
    public void testCondition1() {
        assertTrue(condition1);
    }

    @Test
    public void testCondition2() {
        assertTrue(condition2);
    }

    @Test
    public void testCondition3() {
        assertTrue(condition3);
    }
}


Какие-то может быть еще варианты...?
  • 0

#6 ArtemMCD

ArtemMCD

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Артем

Отправлено 31 января 2012 - 13:55

А какую Вы используете версию junit? Аннотации появились только в 4-й версии, в младших названия тестовых методов должны были начинаться со слова test.
  • 0

#7 nstreltsov

nstreltsov

    Активный участник

  • Members
  • PipPip
  • 116 сообщений
  • ФИО:Стрельцов Николай Игоревич
  • Город:Москва


Отправлено 31 января 2012 - 16:04

не юзал идею, использую эклипс, видел там в каталоге, того, что можно создать, Junit test suite
гляньте тут
http://www.junit.org.../TestSuite.html
  • 0

#8 Pnevmoslon

Pnevmoslon

    Новый участник

  • Members
  • Pip
  • 11 сообщений

Отправлено 03 февраля 2012 - 12:16

Не уверен, что правильно понял вопрос, но почему бы, действительно, не запускать сьюты?
Я, например, запускаю идеей такой сьюит:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My test suite">
    <test name="testing">
        <classes>
            <class name="com.blabla.tests.RL_5402_IT" />
            <class name="com.blabla.tests.RL_5403_IT" />
            <class name="com.blabla.tests.RL_5404_IT" />
            <class name="com.blabla.tests.RL_5456_IT" />
            <class name="com.blabla.tests.RL_5457_IT" />
        </classes>
    </test>
</suite>

  • 0

#9 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 05 февраля 2012 - 18:53

Судя по описанию у вас и вправду используется JUnit 3.x
Там есть класс TestSuite:
http://www.junit.org.../TestSuite.html
Там есть пример как его наполнять. Также можно создавать разные наборы и включать одни наборы в другие. Беда этого подхода (так же как и того, который тут писали) - это статическое перечисление классов с тестами. Т.е. если вы напишите новый класс, то его надо будет добавить в какой-нибудь набор явным образом.

Чтобы этого избежать могу предложить 2 варианта.
1) Напишите ant скрипт. Стандартная таска junit умеет находить все тесты по маске начиная от единого корневого каталога.
2) Напишите свой класс, реализующий динамический поиск тестовых классов, например DynamicTestSuite, который отнаследуйте от стандартного TestSuite. Вызывайте его прямо из IDE.
Для поиска всех классов надо написать некоторые методы самостоятельно ибо такой богатый язык как джава не предоставляет такой возможности. Я у себя применил именно такой подход и воспользовался кодом, приведённом тут: http://stackoverflow...rationtest-in-m
Только метод не работает как там написано и надо в нем что-то поменять по мелочи. Исключить иннер-классы итд.
  • 0
Regards,
Alexey


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных