t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как сделать так чтобы при падении теста браузер закрывался?

Теги: #<Tag:0x00007fd768dd4770> #<Tag:0x00007fd768dd45e0> #<Tag:0x00007fd768dd44c8> #<Tag:0x00007fd768dd4360> #<Tag:0x00007fd768dd4220>

Коллеги всем доброго времени суток!

Selenide+Cucumber+Java.

По отдельности тесты запускаются хорошо, но при попытке запустить несколько кейсов не всегда все они отрабатывают.

Каждый тест содержит функционал логина в начале и разлогина в конце, так вот если тест #3 падает, браузер не закрывается и следующий тест #4 вводит логин и пароль в уже залогиненую учетку, в общем, при падении какого-либо теста все остальное тоже падает…

Хотелось бы чтобы после не успешного теста браузер закрывался, ну или либо после каждого теста (удачного или нет)

ну так это бонус селенида такой, что он не включает/выключает браузер между тестами, что экономит порядочно времени, если тесты небольшие

вроде как он должен подчищать куки и всякие там стореджи между тестами, но если что никто не мешает вам добавить обработчик, который в случае падения теста будет дочищать все в браузере

https://selenide.org/javadoc/current/com/codeborne/selenide/Config.html#reopenBrowserOnFail()

А как именно вы делаете логаут в конце теста? Неужели прямо в самом тесте?
Такие вещи надо делать в методе типа @AfterEach, которые запускаются всегда, даже если тест упал.

P.S. А вообще я советую в конце теста ничего такого не делать. Правильнее, чтобы каждый тест в начале подготовил всё нужное: убедился, что браузер в нужном состоянии, сделал очистку сессии и т.п. См. https://www.youtube.com/watch?v=ePvrXUCeAr8&ab_channel=SeleniumCamp&t=38m27s

В каждом кейсе cucumber feature прописываю что то наподобие “Перейти на главную страницу и разлогиниться”. Пробовал прописать Configuration.reopenBrowserOnFail = true, но пока не работает это…

Нет, настройка Configuration.reopenBrowserOnFail = true означает другое: если браузер закрэшился по дороге, селенид попытается открыть новый браузер. И она и так по умолчанию true.