π Storybook ν μ€νΈ
μ΄ νλ‘μ νΈμμλ Storybook ν
μ€νΈλ₯Ό CI νκ²½μμ μλμΌλ‘ μ€νν©λλ€.
μλλ .github/workflows/test.yml
μν¬νλ‘μ°μ storybook-test
job μμ μννλ μ£Όμ λ¨κ³μ
λλ€.
π» ν μ€νΈ νκ²½
π³ Docker κΈ°λ° Storybook ν μ€νΈ
μ΄ μν¬νλ‘μ°λ Dockerλ₯Ό μ¬μ©νμ¬ Storybook ν μ€νΈλ₯Ό μ€νν©λλ€. Docker Composeλ₯Ό μ¬μ©νμ¬ μλμ κ°μ΄ Storybook μλ²μ ν μ€νΈ λ¬λ 컨ν μ΄λλ₯Ό μ€ννκ³ , ν μ€νΈ κ²°κ³Όλ₯Ό GitHub Actions μν°ν©νΈλ‘ μ λ‘λν©λλ€.
π ν μ€νΈ μν¬νλ‘μ°
λ¨κ³λ³ μ€λͺ
-
μ½λ 체ν¬μμ λ° μΊμ 볡μ
- μμ€ μ½λλ₯Ό 체ν¬μμνκ³ , λ³νλ docker-compose νμΌ μΊμλ₯Ό 볡μν©λλ€.
-
GitHub Container Registry λ‘κ·ΈμΈ
- Storybook κ΄λ ¨ μ΄λ―Έμ§λ₯Ό λΉλ λ° μ€ννκΈ° μν΄ ghcr.ioμ λ‘κ·ΈμΈν©λλ€.
-
λ컀 λ€νΈμν¬ μ€λΉ
test_network
λΌλ μΈλΆ λ컀 λ€νΈμν¬κ° μμΌλ©΄ μμ±ν©λλ€.
-
Storybook μ΄λ―Έμ§ λΉλ
docker-compose.gha.converted.yaml
νμΌμ μ¬μ©νμ¬storybook
λ°storybook-test-runner
2 κ°μ μ΄λ―Έμ§λ₯Ό λΉλν©λλ€.
-
Storybook ν μ€νΈ μ€ν
storybook
κ³Όstorybook-test-runner
컨ν μ΄λλ₯Ό μ€ννμ¬ Storybook ν μ€νΈλ₯Ό μνν©λλ€.storybook-test-runner
컨ν μ΄λμμ ν μ€νΈλ₯Ό μ€ννκ³ κ·Έ κ²°κ³Όλ₯Ό 컨ν μ΄λ λ΄λΆμa11y-audit
λλ ν 리μ μ μ₯ν©λλ€.storybook-test-runner
컨ν μ΄λμ λͺ¨λ νλ‘μΈμ€κ° μλ£λλ©΄storybook
κ³Όstorybook-test-runner
컨ν μ΄λλ₯Ό μ€μ§ν©λλ€.
-
μ κ·Όμ±(A11y) 리ν¬νΈ 볡μ¬
- ν
μ€νΈκ° μλ£λ ν,
storybook-test-runner
컨ν μ΄λ λ΄λΆμ μ κ·Όμ± κ°μ¬ κ²°κ³Ό(a11y-audit
ν΄λ)λ₯Ό νΈμ€νΈλ‘ 볡μ¬ν©λλ€.
- ν
μ€νΈκ° μλ£λ ν,
-
리ν¬νΈ μ λ‘λ
- 볡μ¬ν μ κ·Όμ± λ¦¬ν¬νΈλ₯Ό GitHub Actions μν°ν©νΈλ‘ μ λ‘λν©λλ€.
π§ͺ μ΄λ€ ν μ€νΈκ° μ€νλλμ?
axe-playwright
Storybook ν
μ€νΈλ apps/frontend-workshop/.storybook/test-runner.ts
νμΌμ μ μλ μ€μ μ λ°λΌ μ€νλ©λλ€.
μ΄ μ€μ μμλ axe-playwrightλ₯Ό νμ©νμ¬ κ° Storybook μ€ν 리μ λν΄ μ κ·Όμ±(A11y) μλ κ°μ¬λ₯Ό μνν©λλ€.
- ν
μ€νΈ λ¬λλ κ° μ€ν 리 λ°©λ¬Έ μ
axe-core
λ₯Ό νμ΄μ§μ μ£Όμ νκ³ , μ€ν 리μ a11y νλΌλ―Έν°μ λ°λΌ κ·μΉμ μ€μ ν©λλ€. - κ° μ€ν 리μ νΉμ μμ(κΈ°λ³Έκ°:
body
)λ₯Ό λμμΌλ‘ μ κ·Όμ± κ°μ¬λ₯Ό μ€νν©λλ€. - κ°μ¬ κ²°κ³Όλ JUnit XML νμμΌλ‘ μμ±λμ΄, 컨ν
μ΄λ λ΄λΆμ
test-results/a11y-audit
ν΄λμ μ μ₯λ©λλ€. - ν μ€νΈ μ€ν¨ μμλ μν¬νλ‘μ°κ° μ€λ¨λμ§ μλλ‘ μμΈλ₯Ό μ²λ¦¬ν©λλ€.
μ¦, λͺ¨λ Storybook μ»΄ν¬λνΈμ λν΄ axe κΈ°λ° μ κ·Όμ± μλ ν μ€νΈκ° μ€νλκ³ , κ·Έ κ²°κ³Όκ° λ¦¬ν¬νΈλ‘ λ¨μ΅λλ€.
π¦ ν μ€νΈ μν°ν©νΈ
μ κ·Όμ±(A11y) μλ κ°μ¬ κ²°κ³Ό
ν
μ€νΈκ° μλ£λλ©΄ storybook-test-runner
컨ν
μ΄λ λ΄λΆμ a11y-audit
ν΄λμ μ κ·Όμ± κ°μ¬ κ²°κ³Όκ° μ μ₯λ©λλ€.
μ΄ κ²°κ³Όλ GitHub Actions μν°ν©νΈλ‘ μ
λ‘λλμ΄, λμ€μ λ€μ΄λ‘λνμ¬ νμΈν μ μμ΅λλ€.
λͺ©μ
μ΄ λ¦¬ν¬νΈλ Storybook μ»΄ν¬λνΈμ μ κ·Όμ± λ¬Έμ λ₯Ό μλμΌλ‘ κ°μ§νκ³ , κ°μ ν μ μλ μ 보λ₯Ό μ 곡ν©λλ€.
π μ°Έκ³
μμΈν μν¬νλ‘μ°λ .github/workflows/test.yml
νμΌμ storybook-test
μ‘μ μ°Έκ³ νμΈμ.