Выполнение интеграционного теста должно ждать, пока сервер не будет готов - PullRequest
0 голосов
/ 19 февраля 2019

Я написал тесты Selenium, которые должны быть выполнены в процессе сборки веб-приложения.Я использую maven-failsafe-plugin для выполнения интеграционных тестов и tomcat7-maven-plugin для запуска сервера tomcat на этапе предварительной интеграции, а после выполнения тестов он останавливается на этапе после интеграциифазаЭто работает нормально.

Проблема в том, что сервер tomcat при запуске кэширует некоторые данные, чтобы повысить скорость поиска.Некоторые из моих тестов основаны на этих данных, поэтому интеграционные тесты должны подождать, пока сервер завершит кэширование данных.

Как я могу это сделать?

1 Ответ

0 голосов
/ 02 марта 2019

Я добавил панель процесса, чтобы показать ход загрузки.После завершения загрузки панель процессов больше не отображается, и таблица данных будет отображена.Таким образом, я могу добавить к тестам, которые зависят от таблицы данных для загрузки, следующую строку кода:

longWait.until(ExpectedConditions.presenceOfElementLocated(By.id("dataTablePanel")));

Кроме того, я использую org.junit.runners.Suite в качестве бегуна, чтобы я мог указать порядоккак будут выполнены мои тестовые занятия.Таким образом, я могу выполнить тест, который не опирается в первую очередь на данные, а затем на те, которые в них нуждаются.Чтобы убедиться, что данные присутствуют, и мне не нужно проверять, чтобы в каждом тестовом примере я создал тестовый класс, который будет проверять только наличие данных и будет выполняться перед всеми тестовыми примерами, которые зависят от данных.

...