๐ฆ End-to-end ํ ์คํธ
์ด ํ๋ก์ ํธ์์๋ E2E(End-to-end) ํ
์คํธ๋ฅผ CI ํ๊ฒฝ์์ ์๋์ผ๋ก ์คํํฉ๋๋ค.
์๋๋ .github/workflows/test.yml
์ํฌํ๋ก์ฐ์ e2e-web
job์์ ์ํํ๋ ์ฃผ์ ๋จ๊ณ์
๋๋ค.
๐ป ํ ์คํธ ํ๊ฒฝ
๐ณ Docker ๊ธฐ๋ฐ E2E ํ ์คํธ
์ด ์ํฌํ๋ก์ฐ๋ Docker๋ฅผ ์ฌ์ฉํ์ฌ E2E ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค. Docker Compose๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ ๊ฐ์ด ์น ์๋ฒ์ Playwright ํ ์คํธ ๋ฌ๋ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ , ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ GitHub Actions ์ํฐํฉํธ๋ก ์ ๋ก๋ํฉ๋๋ค.
๐ ํ ์คํธ ์ํฌํ๋ก์ฐ
๋จ๊ณ๋ณ ์ค๋ช
-
์ฝ๋ ์ฒดํฌ์์ ๋ฐ ์บ์ ๋ณต์
- ์์ค ์ฝ๋๋ฅผ ์ฒดํฌ์์ํ๊ณ , ๋ณํ๋ docker-compose ํ์ผ ์บ์๋ฅผ ๋ณต์ํฉ๋๋ค.
-
GitHub Container Registry ๋ก๊ทธ์ธ
- E2E ํ ์คํธ ๊ด๋ จ ์ด๋ฏธ์ง๋ฅผ ๋น๋ ๋ฐ ์คํํ๊ธฐ ์ํด ghcr.io์ ๋ก๊ทธ์ธํฉ๋๋ค.
-
๋์ปค ๋คํธ์ํฌ ์ค๋น
test_network
๋ผ๋ ์ธ๋ถ ๋์ปค ๋คํธ์ํฌ๊ฐ ์์ผ๋ฉด ์์ฑํฉ๋๋ค.
-
E2E ์ด๋ฏธ์ง ๋น๋
docker-compose.gha.converted.yaml
ํ์ผ์ ์ฌ์ฉํ์ฌweb
๋ฐplaywright-web
2๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค.
-
E2E ํ ์คํธ ์คํ
web
๊ณผplaywright-web
์ปจํ ์ด๋๋ฅผ ์คํํ์ฌ E2E ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.playwright-web
์ปจํ ์ด๋์์ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ปจํ ์ด๋ ๋ด๋ถ์test-results/junit.xml
ํ์ผ์ ์ ์ฅํฉ๋๋ค.playwright-web
์ปจํ ์ด๋์ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๋ฉด ๋ ์ปจํ ์ด๋๋ฅผ ์ค์งํฉ๋๋ค.
-
E2E ๋ฆฌํฌํธ ๋ณต์ฌ
- ํ
์คํธ๊ฐ ์๋ฃ๋ ํ,
playwright-web
์ปจํ ์ด๋ ๋ด๋ถ์test-results/junit.xml
ํ์ผ์ ํธ์คํธ๋ก ๋ณต์ฌํฉ๋๋ค.
- ํ
์คํธ๊ฐ ์๋ฃ๋ ํ,
-
๋ฆฌํฌํธ ์ ๋ก๋
- ๋ณต์ฌํ E2E ๋ฆฌํฌํธ๋ฅผ GitHub Actions ์ํฐํฉํธ๋ก ์ ๋ก๋ํฉ๋๋ค.
๐งช ์ด๋ค ํ ์คํธ๊ฐ ์คํ๋๋์?
Playwright
E2E ํ
์คํธ๋ Playwright๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ,
tools/playwright-web
๋๋ ํ ๋ฆฌ ๋ด์ ์ ์๋ ํ
์คํธ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋ฉ๋๋ค.
- Playwright๋ ์ค์ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์ฌ์ฉ์์ ํ๋์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ ์ฒด ํ๋ก์ฐ๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
- ํ
์คํธ ๊ฒฐ๊ณผ๋ JUnit XML ํ์์ผ๋ก ์์ฑ๋์ด, ์ปจํ
์ด๋ ๋ด๋ถ์
test-results/junit.xml
ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. - ํ ์คํธ ์คํจ ์์๋ ์ํฌํ๋ก์ฐ๊ฐ ์ค๋จ๋์ง ์๋๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์ฆ, ์ฃผ์ ์ฌ์ฉ์ ์๋๋ฆฌ์ค์ ๋ํ E2E ์๋ ํ ์คํธ๊ฐ ์คํ๋๊ณ , ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ฆฌํฌํธ๋ก ๋จ์ต๋๋ค.
๐ฆ ํ ์คํธ ์ํฐํฉํธ
E2E ์๋ ํ ์คํธ ๊ฒฐ๊ณผ
ํ
์คํธ๊ฐ ์๋ฃ๋๋ฉด playwright-web
์ปจํ
์ด๋ ๋ด๋ถ์ test-results/junit.xml
ํ์ผ์ E2E ํ
์คํธ ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
์ด ๊ฒฐ๊ณผ๋ GitHub Actions ์ํฐํฉํธ๋ก ์
๋ก๋๋์ด, ๋์ค์ ๋ค์ด๋ก๋ํ์ฌ ํ์ธํ ์ ์์ต๋๋ค.
๋ชฉ์
์ด ๋ฆฌํฌํธ๋ ์ค์ ์ฌ์ฉ์ ๊ด์ ์์ ์ฃผ์ ๊ธฐ๋ฅ์ ์ ์ ๋์ ์ฌ๋ถ๋ฅผ ์๋์ผ๋ก ๊ฒ์ฆํ๊ณ , ๋ฌธ์ ๋ฐ์ ์ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์๋๋ก ๋์์ค๋๋ค.
๐ ์ฐธ๊ณ
์์ธํ ์ํฌํ๋ก์ฐ๋ .github/workflows/test.yml
ํ์ผ์ e2e-web
์ก์ ์ฐธ๊ณ ํ์ธ์.