Как реализовать возможность остановки JUnit-Selenium-теста, во время его выполнения?
Представим самый обычный тест, написанный на java, Junit + Selenium. При прохождении этого теста необходимо реализовать возможность остановки его выполнения (например, нажатием на кнопку), при этом драйвер не должен закрываться, и продолжения выполнения (например, нажатием на ту же кнопку).
Есть ли идеи как это сделать?
Мне в голову приходит только идея поднять второй поток, который будет слушать нажатие на какую-либо кнопку. Но как при этом остановить тест?
а зачем останавливать тест? если вам нужно перед тестом что-то запустить - можно запустить это в тесте. если нужно чего то подождать - тоже можно подождать в тесте или в дженкинсе перед запуском тестов. если вам нужно что-то рассмотреть - делайте скриншоты, и логгируйте состояние приложения.
можно запустить в режиме отладки и остановить исполнение в любом месте, раз вы уже и так проигрываете его в полуручном режиме.
придется перед каждым действием писать какой-то wait.until(boolean) типа такого и управлять значением да/нет через вашу кнопку которая будет запущена в другом потоке. насчет синхронизации потоков ммм, не специалист.
Но если все равно перед каждым действием вставлять специальный код, можно запрашивать с консоли "продолжить? (д/н)"
Если нужна пауза при определенных действиях (т. е. не при всех), то можно попробовать декорировать необходимые методы, добавив паузы или запрашивая разрешение для продолжения
ЕМНИП Selenium прЫнудительно закроет браузер довольно быстро по таймауту. а чтобы следать кнопку достаточно превратить тест в (скрытно) графическое приложение - на выбор зала - SWT или Swing или JavaFx - оно будет ничем не отличаться от консольного кроме вороха дополнительных зависимостей - вам пример ? i have both SWT и JAvaFx apps and Selenium tests in my git repo - обычно редко кто скрещиывет ежа с ужом...
при этом тест остановится не в произвольной точке а там где будет
(new CustomDialog(shell)).open();