Bezdepbonusu7Программирование: статьи и ответы

Вопрос

JUnit, Selenium и tearDown

Автор вопроса: AltugОтветов: 2

Такой юнит:

    @Test
    public void testA {
//some code here...
}

    @Test
    pulic void testB {
//some code here...
}
    @After
    public void closeBrowsers() throws Exception {
selenium.stop();
}

Вот вопрос: метод closeBrowsers() вызывается после каждого тестового метода; в этом случае он вызывается дважды, и я получаю "Неправильный тест завершен". из Юнит. Мне нужен метод/аннотация junit, который будет вызываться после завершения всех тестов (просто вызывается один раз после завершения всех тестов), возможно ли это?

Также я пытался проверить, работает ли селен или нет в closeBrowsers(), но никак не мог найти решение.

PS: я прочитал это: Как закрыть браузер на сервере Selenium RC, который потерял клиент

но я не мог понять решение, а также в настоящее время http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc на стороне блога не работает

  • @AfterClass нужен статический метод. Посмотрите на это, пожалуйста: открытый класс xxxTest extends SeleneseTestCase { @Test public void testaaa() throws Exception { try {selenium.setSpeed(100); ..... } } } Если я использую @AfterClass, тогда testaaa() должен быть статическим, и в этом случае я не могу использовать переменную selenium... Есть какое-нибудь решение для этого? Спасибо. Altug 28.07.2010
  • Вы можете сделать свою переменную селена статической Sergii Pozharov 28.07.2010

javaseleniumjunit

Ответы

Ответ 1 · рейтинг 3 · Sergii Pozharov

Вы можете сделать переменную selenium статической, инициализировать ее в статическом методе @BeforeClass и очистить в @AfterClass:

public class ...... {

  private static Selenium selenium;

  @BeforeClass
  public static void initSelenium() {
     selenium = new DefaultSelenium(...); // or initialize it in any other way
  }

  @Test
  public void testA {...}

  @Test
  pulic void testB {...}

  @AfterClass
  public static void closeBrowsers() throws Exception {
    selenium.stop();
  }
}

Ответ 2 · рейтинг 3 · Reflux

Используйте аннотацию @AfterClass.

http://junit.sourceforge.net/doc/faq/faq.htm#organize_3

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы