Modul 10 · Python for SDETs
CI
GitHub Actions ilə
Dəst özünü işlədir — hər push və pull request-də
tests.yml
tətbiqi başlat & gözlə
hesabat artefaktı
tələb olunan yoxlama
İşlətməyi xatırlamalı olduğun testlər gec-tez işlədilmir
CI dəsti sənin üçün işlədir — avtomatik
🔁
Hər dəyişiklik
Hər push və PR-da hər testi işlədir — "işlətməyi unutdum" yoxdur.
🛑
Sınmanı bloklayır
Uğursuzluq commit/PR-ı qırmızı işarələyir — və birləşmək üçün yaşıl tələb edə bilər.
📄
Bölüşülə bilən hesabat
HTML hesabatı icraya əlavə olunur, hər kəsin açması üçün.
🚪Fayda tələb olunan yoxlamadır: dəst CI-nin təmiz maşınında keçənə qədər PR birləşə bilmir — sadəcə "mənim noutbukumda işləyir" yox.
.github/workflows/-da bir YAML fayl
# .github/workflows/tests.yml
name: tests
on:
push: { branches: [main] }
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps: …
🧱Bir name, bir on: tətikləyici və steps-dən ibarət jobs.
🔩Hər addım ya uses: (hazır action) ya da run: (shell əmrləri)-dir. push-u main-ə scope-lamaq branch push-unun və onun PR-ının hər ikisinin işləməsini dayandırır.
İşin forması
Checkout → qur → tətbiqi başlat → test → yüklə
checkout
→
Python + Node
→
pip install + playwright
→
tətbiqi başlat & gözlə
→
pytest
→
hesabatı yüklə
📌Hər quraşdırmadan sonra requirements.txt-i yenidən bərkit (pytest-html, pytest-playwright) — çatışmayan asılılıq CI-də --html addımını uğursuz edir.
İnsanları büdrədən iki təfərrüat
# background the app, then WAIT
npm start &
for i in $(seq 1 30); do
curl -sf localhost:3000/api/products \
&& exit 0
sleep 1
done; exit 1 # never started
⏳npm start & dərhal qayıdır — real endpoint-i cavab verənə qədər yoxla, sabit təxmini sleep etmə.
🐧playwright install --with-deps chromium — headless runner-in Linux kitabxanalarına da ehtiyacı var.
💾if: always() ilə yüklə — testlər uğursuz olanda belə hesabatı saxla (məhz onu istədiyin an).
🤖
Testlər
həmişə işlədi
Hər push təmiz maşında yoxlanılıb, hesabat əlavə olunub, birləşmələr yaşıla bağlıdır
⚙️
Məşq
tests.yml əlavə et, push et və Actions tabında icranın yaşıl getdiyini izlə
🚪
Onu tələb et
Branch qorunması: test işini tələb et ki, heç bir qırmızı PR main-ə çatmasın
➡️
Modul 11
Capstone — hər şeyi birləşdirən tam API + UI dəsti