
Привіт друзі! В житті кожного автоматизатора настає момент, коли треба припинити писати нові тести і налаштувати їх запуск в Continuous Integration. І тут можуть виникнути складнощі, оскільки інструментів для забезпечення CI – дуже багато. Я вам не розкажу за всі, але поділюсь свіжим досвідом про один, що наразі використовую.
Раніше, коли трава була зеленіша, налаштування запуску автотестів було простіше – встановлювався на окремий сервер інструмент типу Jenkins, Test Execute чи мій тодішній фаворит – CruiseControl, і білди/тести просто запускались за командою інструменту.
Сучасні ж тренди пропагують більшу ізольованість середовищ для автотестування, з чим чудово зправляється Docker – на кожний білд/тест ми тепер маємо ізольоване середовище з мінімальним впливом сторонніх факторів.
Звучить дуже круто, але ускладнення інфраструктури зазвичай призводить до ускладнення її налаштування. Але не завжди. В одному з моїх проєктів мені видали bitbucket в якості source control і я вирішив дізнатись, як налаштувати в ньому запуск тестів. І це виявилось на диво просто. Напишу покроково:
- Почитати документацію
- Створити в своєму проєкті файл bitbucket-pipelines.yml (можна з готового темплейту, одразу в bitbucket)
- Вказати ім’я Docker image, в якому має працювати тест (я вказав офіційний з документації playwright)
- Далі можна створювати пайплайни – їх в одному файлі може бути багато. Якщо вам такого не треба, нехай буде один default
- І тут вже все просто. Створюєте степ, вказуєте його ім’я, кеш (зазвичай те, що треба качати в докер, можна закешувати, щоб прискорити виконання) і вказати команди в пункті script
- Також додатково зверну увагу, що у випадку, якщо команда скрипту зафейлиться, то всі наступні команди і кроки виконуватись не будуть!
І на останок приклад мого пайплайну (трохи спростив)
image: mcr.microsoft.com/playwright:focal
pipelines:
default:
- step:
name: Test
caches:
- pip
- playwright # browser drivers cached
script:
- pip install -r requirements.txt
- python -m playwright install
- pytest -v
definitions:
caches:
playwright: ~/.cache/ms-playwright
P.S. А ось іще крута штука – якщо зберігати результати тесту в junit report їх можна переглянути просто в пайплайні. Інструкція