Очистка базы данных после тестов Selenium - PullRequest
1 голос
/ 13 января 2011

После того, как я запустил кучу тестов Selenium (jUnit4) с использованием Maven, я бы хотел очистить базу данных (удалить вещи, которые они вставили и т. Д.). Это более старый проект, работающий на Tapestry / Spring / Hibernate и устаревшей базе данных. Я хотел бы выполнить очистку аннотированным методом @After, но внедрение DAO / Managers / SessionFactory не работает.

Тестирование происходит следующим образом: я запускаю (mvn jetty:run-war) приложение на одной консоли и запускаю тестирование на другой консоли (mvn test) - оно обращается к приложению на локальном хосте: 8080.

Ответы [ 2 ]

6 голосов
/ 13 января 2011

Несколько возможных подходов:

  1. Использование dbunit , которое предназначено для возврата базы данных в известное состояние между тестами.
  2. Оберните каждый тест вТранзакция базы данных с блоком try{} finally{}, где, наконец, откатывает транзакцию.
  3. Используйте базу данных строго для тестирования и не беспокойтесь об этом.Сделайте так, чтобы ваши тесты создавали уникально идентифицированные / именованные значения каждый раз, чтобы у вас не было конфликтов, но в противном случае не предпринимайте никаких действий.
0 голосов
/ 07 декабря 2016

Я бы лучше использовал

@ Transactional

аннотацию выше объявления метода.Он запускает откат после каждого теста.Он отлично работает для меня.

Например:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...