Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Python мануфактура · Сесії: AMA та PMP · 0:00–3:30

Що робить `.gitignore`

`.gitignore` описує файли й каталоги, які Git не має додавати до індексу як нові untracked-зміни. Зазвичай проєктний файл лежить у корені репозиторію. IDE також може мати власні налаштування або ignore-файли, але вони не замінюють правила Git, які мають однаково працювати для всіх учасників і в CI. У PyCharm, IntelliJ IDEA, WebStorm або VS Code плагін для ignore-файлів може дати шаблони та зрозуміле підсвічування. Навіть після `git add .` Git пропустить нові файли, які відповідають правилам `.gitignore`. Водночас правило не прибирає файл, якщо Git уже почав його відстежувати: такий файл треба окремо вилучити з індексу без видалення локальної копії.

Гітігнор та як працювати з гітом та не помилитись →

Python мануфактура · Програма курсу · 0:00–4:00

`.env` як локальна конфігурація

Автотести розглядаються як застосунок, якому потрібна конфігурація: базові URL, email, пароль та інші параметри запуску. У корені проєкту створюється `.env`, а імена незмінних конфігурацій записуються в `UPPER_SNAKE_CASE`, наприклад `BASE_URL`, `EMAIL`, `PASSWORD`. `.env` і `.venv` додаються до `.gitignore`. Сірий файл в IDE означає, що Git його не відстежує. Важливе уточнення: `.gitignore` діє лише на невідстежувані файли. Якщо `.env` уже був закомічений, його треба прибрати з індексу; якщо секрет уже опублікований — також відкликати або змінити сам секрет.

2.1. відео, енв файл →

Python мануфактура · Програма курсу · 57:20–1:02:30

Підготовка файлів до коміту

Віртуальне середовище `.venv` не потрібно комітити. Налаштування `.idea` в уроці також додаються до `.gitignore`, хоча частина спільних JetBrains-конфігурацій може бути корисною для команди — це слід вирішити явно. Кольори в Project view показують стан файлів відносно Git. Якщо файл уже потрапив до індексу, просте додавання правила в `.gitignore` не прибере його автоматично: спочатку його потрібно вилучити з індексу, не видаляючи потрібний локальний вміст.

3. Селектори та пошук елементів →

Java: архівні доповнення · 6:10–8:35

Що не можна комітити

До Git додаються source code, Gradle Wrapper і потрібні configuration files. Не комітяться `.gradle`, `build`, `out`, локальна `.idea`, Maven build output та файли з environment variables чи secrets. Виняток для частини `.idea` може бути свідомим командним рішенням, наприклад для спільного code style. `.gitignore` має явно захищати repository від згенерованого сміття та приватних даних.

Публікація Java-проєкту на GitHub →

Python мануфактура · Сесії: AMA та PMP · 6:30–10:30

Старт нового репозиторію без зайвих файлів

У демонстрації виправляється помилка з назвою `.ignore`: для Git потрібен саме `.gitignore`. Схожий суфікс використовують й інші інструменти у власних файлах, наприклад `.cursorignore`, але кожен із них має окреме призначення. Рекомендований стартовий workflow: ініціалізувати Git-репозиторій, створити `.gitignore`, одразу записати відомі локальні каталоги на кшталт `.idea/`, `.venv/` і результатів тестів, а вже потім індексувати потрібні вихідні файли. IDE може запитувати, чи автоматично додавати новостворені файли до Git; це зручно, якщо ignore-правила вже захищають локальні артефакти.

Гітігнор та як працювати з гітом та не помилитись →

Python мануфактура · Сесії: AMA та PMP · 7:30–11:30

Кілька середовищ і поступова еволюція конфігурації

Для dev, staging, UAT та інших середовищ можуть існувати окремі локальні файли, і кожен із них має бути проігнорований. Якщо файл випадково додали до індексу, простого нового правила в `.gitignore` недостатньо: треба забрати його зі staged/tracked стану й тільки тоді перевірити ignore. Середовище не завжди визначається окремим доменом. Маршрутизація може залежати від path, cookie, custom header або feature flag; у production подібний механізм використовується для canary release. У тестах ці параметри мають бути явною конфігурацією, а не розкиданими константами. Ланцюжок розвитку у відео: hardcode → `.env` → структурований config → централізований config server. Перехід потрібен лише тоді, коли попередній варіант уже створює вимірювану незручність або ризик.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

Python мануфактура · Програма курсу · 10:00–18:00

Консольний запуск, HTML report і Git hygiene

Запуск простої команди `pytest` у терміналі відтворює спосіб, у який suite згодом стартуватиме на CI. Така перевірка важлива: запуск через IDE може мати інший working directory, environment або власні параметри. `pytest-html` створює початковий звіт зі статусами тестів і доступними логами. Його достатньо для першої діагностики на CI: знайти failed test, переглянути повідомлення, а потім локально відтворити проблему з trace. Звіт не замінює повну observability, але дає мінімальний переносний артефакт. Каталоги з HTML-звітами, screenshots і traces додаються до `.gitignore`. Це результати конкретного запуску, а не вихідний код; їх треба публікувати як CI artifacts, а не комітити в репозиторій.

1. Налаштування Playwright та Pytest, простий репортінг →

Python мануфактура · Програма курсу · 16:40–20:05

Де й у якому форматі зберігати state

Playwright записує state як JSON із cookies та origins/local storage. Cookie містить `name`, `value`, `domain`, `path`, expiration, `httpOnly`, `secure` та інші параметри; новий context отримує цей файл через `storage_state`. Файл не можна комітити: він може містити чинну сесію та дані внутрішньої інфраструктури. У прикладі state лежить у вже заігнореній `test-results`; окрема директорія також прийнятна, якщо вона гарантовано додана до `.gitignore`.

2. Storage state, cookie manipulation, дебаг зникаючих елементів →

Java: архівні доповнення · 2:10–4:15

Публікація локального проєкту

Для локального проєкту використовується IDE action `Share Project on GitHub`: вказується назва repository та його visibility. Перед першим commit треба переглянути список файлів. `.idea`, логи та інші локальні артефакти не мають випадково потрапити до repository.

Публікація Java-проєкту на GitHub →

Python мануфактура · Програма курсу · 3:18–5:43

Структура папок і створення проєкту

Перед створенням проєкту варто перевірити його фізичний шлях. Особисті та робочі репозиторії краще розділяти: наприклад, тримати open-source й особисті проєкти в окремій папці, а робочі — у папці конкретної компанії. Це зменшує плутанину між різними обліковими записами, репозиторіями та середовищами. Навчальний проєкт присвячений Testomat.io — системі керування тестами. У ньому далі автоматизуватимуться операції зі створення проєктів, папок і тест-кейсів. Під час створення можна залишити стартовий скрипт. Нові файли проєкту варто додавати до Git, якщо вони справді є частиною коду; зайве згодом можна видалити або додати до `.gitignore`.

1. Налаштування PyCharm, JetBrains Toolbox, створення проєкту та структура проектів →
Запитати в чаті про «gitignore» →