Параллельные тесты огурца не работают только в CI
Я работаю в устаревшем ROR-приложении с большим количеством тестовых покрытий, поэтому для выполнения всех rspec_cucumber в нашем семафорном CI потребуется около 1:30 часов. поэтому мы реализовали [Parallel_test] [1]
[1]: https://github.com/grosser/parallel_tests. Драгоценный камень и много раз некоторые технические характеристики или сценарий не работают только в среде CI. Когда мы повторно запускаем один и тот же тестовый пример в локальной и семафорной среде SSH, передается та же самая спецификация.
Наиболее распространенная ошибка в журнале для среды CI Capybara::ElementNotFound:
трудно определить основную причину проблемы. Есть какие-нибудь подсказки по этому поводу?
1 ответ
Попробуйте работать на CI без параллельного теста, затем позвольте платформе CI выполнять распараллеливание.
Может быть, это поможет https://semaphoreci.com/docs/running-cucumber-scenarios-in-threads.html.
Я почти уверен, что семафор поддерживает параллельное тестирование с помощью rspec.
Также попробуйте запустить локально весь пакет с параллельным тестом и посмотрите, есть ли у вас те же проблемы.
Наконец, в командной строке посмотрите на cucumber --help
, Есть ряд опций, которые вы можете использовать, чтобы сделать следующее
- добавить больше отладочной информации в прогон
- определить ваши самые медленные сценарии (возможно, вы могли бы пометить их и запускать их реже).
Я столкнулся с аналогичной проблемой с Capybara иparallel_tests
Я обнаружил, что чем больше одновременных тестов вы запускаете одновременно, тем более "странные" проблемы у вас возникают в Circle CI. Тем не менее, несмотря на то, что чипы в Circle CI (по крайней мере, в наших контейнерах) имеют 18 ядер. Я ограничил количество одновременных тестов до 4, используя-n 4
флаг.
Таким образом, в моей конфигурации Ci я использую: bundle exec parallel_rspec ~/repo/spec -n 4