Согласны с другими ответами здесь. В тестах Selenium и DBUnit я подключился к трем последним проектам, над которыми работал. В первом проекте мы попробовали ленивый подход, но, как и ожидалось, он потерял кучу, поэтому мы использовали DBUnit, и я не оглядывался назад.
Я понимаю, что вы используете PHP, поэтому, пожалуйста, переведите DBUnit / JUnit в ваши эквиваленты PHP.
Пара баллов:
- Используйте как можно меньше данных. С
Вы хотите провести много тестов на селен
загрузка DBUnit должна быть быстрой
возможный. Поэтому постарайтесь свести к минимуму
количество данных, которые вы загружаете.
- Загружать только те данные, которые изменяются. Часто
Вы можете пропустить таблицы, которые никогда не
изменено веб-приложением. Ссылочные данные
столы и тд. Однако вы можете
хочу создать отдельный DBUnit xml
резервная копия файла / базы данных для загрузки этих данных в
на случай, если вы случайно его потеряете.
Пусть тесты селена JUnit выберут
нуждаются ли они в перезагрузке. Некоторые тесты Selenium не изменят
данные, поэтому нет смысла перезагружать
база данных после того, как они запускаются. В каждом из моих тестов на селен я
переопределить / реализовать метод для возврата желаемого поведения DBUnit.
@ Override
Защищенный DBUnitRunConfig getDBUnitRunConfig () {
return DBUnitRunConfig.RUN_ONCE_FOR_THIS_TEST_CASE;
}
(Не удалось получить этот фрагмент для правильного форматирования.) Где DBUnitRunConfig:
public enum DBUnitRunConfig {
NONE,
RUN_IF_NOT_YET_RUN_IN_ANY_TEST_CASE,
RUN_ONCE_FOR_THIS_TEST_CASE,
RUN_FOR_EACH_TEST_IN_TEST_CASE
};
Это сокращает время, необходимое для прохождения тестов. Суперкласс с поддержкой Selenium (или вспомогательный класс) может затем запускать или не запускать DBUnit для данных тестов.