Уведомления
Очистить всё
Темы для коротких докладов
3
Сообщения
3
Пользователи
9
Реакции
433
Просмотры
18 декабря 2023 09:56
Заявка на зимнюю встречу, минут на 10. В системных тестах раз за разом одно и то же: тест падает через раз в CI, кто-то вставляет sleep 2, тест зеленеет на неделю, потом снова падает, только теперь медленнее на две секунды. Хочу на трёх примерах показать, почему так и что делать вместо этого. Главная мысль: матчеры Capybara сами ждут, если ими правильно пользоваться.
# ждёт до Capybara.default_max_wait_time
expect(page).to have_css(".notice", text: "Сохранено")
# find подождёт элемент, но текст сравнится сразу
expect(page.find(".notice").text).to eq("Сохранено")
Ещё про has_no_css? против !has_css? и про то, как в Cuprite посмотреть, что браузер на самом деле делал в момент падения. Кому интересно?
2 ответа
18 декабря 2023 10:55
Очень хочу послушать. На курсах я как раз писала первые системные тесты и тоже лечила их sleep, теперь понятно, почему они всё равно мигали.
18 декабря 2023 17:19
+1. Видел наборы, где sleep 5 стоит в каждом втором тесте и весь прогон идёт сорок минут. Приду