Есть тесты, написанные на JS (WebdriverIO, Cucumber).
При запуске тестов из под IntelliJ IDEA все тесты работают, ничего не падает. Когда же эти самые тесты запускаются в TeamCity, то откуда-то начинают вылазить ошибки с ожиданиями, не найденными элементами и прочее. Запускаешь опять этот же тест локально - все работает.
При другом запуске TeamCity предыдущая ошибка может не вылезть, а вылезет какая-то другая. То есть абсолютно рандомно, как лотерея. Из-за этого билд ни разу не показал зеленый свет.
В чем может быть проблема?
Очевидно, моих 1,5 года опыта недостаточно, чтобы разобраться в этом.
Попробуйте воссоздать среду в которой гоняются тесты локально, при помощи VM,Docker и т.п.
Возможно дело в разнице в производительности локальной машины и раннера на CI
из самых простых причин: производительность и разрешение.
Можно попробовать воссоздать среду, но проще подключится по ремоуту и посмотреть, как именно ранятся тесты своими глазами.
У агента есть прикол, если он запускается не от имени реального пользователя. У него тогда могут возникнуть траблы с отрисовкой графики в браузере. А по дефолту он стартует как сервис в ОС.
Попробуй запустить агент от имени реального пользователя с рабочим столом.
проблем может быть множество. От нехватки памяти на машине, или долгом response, до неправильно написанных тестов.
Если запускаешь с помощью wdio, попробуй уменьшить количество инстансов при запуске, 2-3 браузера на прогон. Если валится определенный спек, запусти только его.
В большей вероятностью у вас не правильно описаны ожидания.
попробуйте перед кликами делать ожидания
const element = browser.$('/div');
element.waitForVisible();
element.click()
Попробуй при прогоне записывать в логи информацию о том, при каком разрешении выполнялся тест. Вероятно, проблема в разрешении на агенте, сама с таким сталкивалась часто.