Skip to Content
Nextra 4.0 is released ๐ŸŽ‰

๐Ÿšฆ End-to-end ํ…Œ์ŠคํŠธ

์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” E2E(End-to-end) ํ…Œ์ŠคํŠธ๋ฅผ CI ํ™˜๊ฒฝ์—์„œ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” .github/workflows/test.yml ์›Œํฌํ”Œ๋กœ์šฐ์˜ e2e-web job์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๐Ÿ’ป ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ

๐Ÿณ Docker ๊ธฐ๋ฐ˜ E2E ํ…Œ์ŠคํŠธ

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ E2E ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์›น ์„œ๋ฒ„์™€ Playwright ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ GitHub Actions ์•„ํ‹ฐํŒฉํŠธ๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”„ ํ…Œ์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ

๋‹จ๊ณ„๋ณ„ ์„ค๋ช…

  1. ์ฝ”๋“œ ์ฒดํฌ์•„์›ƒ ๋ฐ ์บ์‹œ ๋ณต์›

    • ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ฒดํฌ์•„์›ƒํ•˜๊ณ , ๋ณ€ํ™˜๋œ docker-compose ํŒŒ์ผ ์บ์‹œ๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
  2. GitHub Container Registry ๋กœ๊ทธ์ธ

    • E2E ํ…Œ์ŠคํŠธ ๊ด€๋ จ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ghcr.io์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ๋„์ปค ๋„คํŠธ์›Œํฌ ์ค€๋น„

    • test_network๋ผ๋Š” ์™ธ๋ถ€ ๋„์ปค ๋„คํŠธ์›Œํฌ๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  4. E2E ์ด๋ฏธ์ง€ ๋นŒ๋“œ

    • docker-compose.gha.converted.yaml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ web ๋ฐ playwright-web 2๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  5. E2E ํ…Œ์ŠคํŠธ ์‹คํ–‰

    • web๊ณผ playwright-web ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ E2E ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • playwright-web ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ test-results/junit.xml ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • playwright-web ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‘ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  6. E2E ๋ฆฌํฌํŠธ ๋ณต์‚ฌ

    • ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„, playwright-web ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ test-results/junit.xml ํŒŒ์ผ์„ ํ˜ธ์ŠคํŠธ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  7. ๋ฆฌํฌํŠธ ์—…๋กœ๋“œ

    • ๋ณต์‚ฌํ•œ 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 ์žก์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.


Last updated on