Исправлена ошибка Selenium, которая не была проблемой Selenium
Это был долгий путь, чтобы добраться оттуда сюда ...
Мы гонялись за нашим хвостом в течение дней, , не говоря уже о многих, пытаясь понять, почемунаши тесты Selenium JavaScript явно ломали Docker.В конце концов, мы опубликовали просьбы о помощи в Reddit, StackOverFlow и Gitter;все варианты (и ссылки) этой Суть .
Оказывается, проблема не была (полностью) с Селеном, Капибарой, Докером и / или взаимодействием между ними. @ mitpaladin в конечном итоге обнаружил случайное начальное число (15474), которое при указании через переменную окружения TESTOPTS
, передаваемое Rake в scripts/run_tests.sh
, давало бы зеленую полосу.Это было интересно, но не обязательно прямо полезно;Доказав, что шанс получения зеленой полосы был как минимум 1 ((2 ** 333) - 1), сами тесты не нанесли непоправимого ущерба.(Ваши шансы, однако, намного выше в вашей местной лотерее.) Когда мы оба занялись дальнейшими онлайн-исследованиями, @mitpaladin снова пришел к выводу, найдя несколько ответов StackOverflow, таких как этот , который указывал (средний) палецпрямо на ... DatabaseCleaner всех вещей.Честно говоря, их README слегка затрагивает проблему , но, если вы еще не знаете, что именно ищете, вы, вероятно, не подумаете об этом дважды, даже если прочитаете ее.
Изменение DatabaseCleaner.strategy
с :transaction
на :deletion
позволило всем работать;после внесения изменений мы были немедленно вознаграждены зеленой полосой.(Существует константа DB_CLEANER_STRATEGY
, определенная в spec/spec_helper.rb
, однако, на всякий случай, нам когда-нибудь понадобится изменить ее снова.)
Теперь, возможно, мы сможем вернуться к своим головам и выяснить, что мы пыталисьвыполнить после этой новой функции спецификации lo!много дней назад.