Запуск автотестов: и здесь, и тут, и повсеместно |
05.07.2019 00:00 |
Автор: Пол Гриззаффи (Paul Grizzaffi) Допустим, вы отвечаете за изначальную подготовку набора автотестов в вашей команде. Используя ваш основной компьютер, вы создали все сценарии, тщательно их протестировали, и теперь они готовы к использованию. Они основаны на существующем смоук-наборе тестов, и вы планируете запускать их при каждом деплое – теперь этим не нужно заниматься тест-команде. Автоматизация имеет бешеный успех и бережет кучу времени тестировщика еженедельно! Вы планируете заслуженный отпуск – всего на недельку. Кто будет запускать автотесты в ваше отсутствие? Инфраструктура для автоматического запуска тестов еще не готова, поэтому кто-то из команды назначается счастливчиком, который будет стартовать тесты вместо вас. Вы подготовились и помогли коллеге скачать или установить все необходимое для автоматизации на его компьютер. И вот вы просите его прогнать тесты – ну, просто чтобы быть полностью уверенным, что коллега сможет это сделать. Упс. Запуск невозможен. Вы дружно разбираетесь, в чем дело:
В конце концов тесты запускаются, но не проходят. Возможно, проблема в приложении. Чтобы проверить это, вы запускаете тесты на своей машине, и они проходят, как и ожидалось. Исследуя вопрос, вы обнаруживаете, что у коллеги компьютер старенький и слабый – он медленнее прогоняет тесты, и в результате они падают по таймауту. Черт побери! Отпуск уже завтра! Это выдуманная история, но я видел частично похожие на нее, а также слышал нечто подобное. Ситуация тут схожа с проблемой "на моей машине все работает". Изначальный автор автоматизации разрабатывал ее для запуска на собственной машине, не задумываясь, что будет, если ее понадобится запускать кому-то другому – это могут быть другие участники команды, или же автоматизированная система, к примеру, часть процесса непрерывного развертывания. Иными словами, в автоматизации не предусмотрели ее переносимость. Переносимость двухкомпонентна:
Вот чего стоит тут опасаться:
Разработка автоматизации, которая будет работать на каждом компьютере в компании – не всегда оправданное дело, но учет переносимости повышает количество членов команды, способных принимать участие в связанной с автоматизацией деятельности. Переносимость - также первый шаг в направлении непрерывного развертывания. |