Skip to main content
Vitest둜 μž‘μ„±λœ ν…ŒμŠ€νŠΈλ₯Ό 효과적으둜 λ””λ²„κΉ…ν•˜λŠ” 방법을 λ‹€λ£Ήλ‹ˆλ‹€.

Vitest 디버깅 방법

SonamuλŠ” Vitestλ₯Ό ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬λ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ 디버깅 방법을 μ œκ³΅ν•©λ‹ˆλ‹€.

VSCode 디버거 μ‚¬μš©

1. launch.json μ„€μ •

.vscode/launch.json:

2. 디버깅 μ‹€ν–‰

  1. ν…ŒμŠ€νŠΈ 파일 μ—΄κΈ°
    • λ””λ²„κΉ…ν•˜λ €λŠ” .test.ts 파일 μ—΄κΈ°
  2. 브레이크포인트 μ„€μ •
    • 쀄 번호 μ™Όμͺ½ ν΄λ¦­ν•˜μ—¬ λΉ¨κ°„ 점 ν‘œμ‹œ
  3. 디버거 μ‹œμž‘
    • F5 ν‚€ λ˜λŠ” β€œRun and Debug” νŒ¨λ„μ—μ„œ β€œDebug Current Test File” 선택
  4. 디버깅
    • λΈŒλ ˆμ΄ν¬ν¬μΈνŠΈμ—μ„œ λ©ˆμΆ”λ©΄ λ³€μˆ˜ 검사
    • F10 (Step Over), F11 (Step Into) λ“± μ‚¬μš©

μ½˜μ†” λ‘œκΉ…

console.log μ‚¬μš©

κ°€μž₯ κ°„λ‹¨ν•œ 디버깅 방법:

κ΅¬μ‘°ν™”λœ λ‘œκΉ…

νŠΉμ • ν…ŒμŠ€νŠΈλ§Œ μ‹€ν–‰

test.only

describe.only

CLI둜 νŠΉμ • ν…ŒμŠ€νŠΈ μ‹€ν–‰

Watch λͺ¨λ“œ

μžλ™ μž¬μ‹€ν–‰

νŒŒμΌμ„ μˆ˜μ •ν•˜λ©΄ κ΄€λ ¨ ν…ŒμŠ€νŠΈκ°€ μžλ™μœΌλ‘œ μž¬μ‹€ν–‰λ©λ‹ˆλ‹€.

Watch λͺ¨λ“œ 단좕킀

ν…ŒμŠ€νŠΈ μ‹€ν–‰ 쀑:
  • a: λͺ¨λ“  ν…ŒμŠ€νŠΈ μž¬μ‹€ν–‰
  • f: μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈλ§Œ μž¬μ‹€ν–‰
  • t: νŠΉμ • ν…ŒμŠ€νŠΈ ν•„ν„°
  • q: μ’…λ£Œ

UI λͺ¨λ“œ (vitest β€”ui)

μ‹€ν–‰

λΈŒλΌμš°μ €μ—μ„œ http://localhost:51204/__vitest__/ μ—΄λ¦Ό κΈ°λŠ₯:
  • ν…ŒμŠ€νŠΈ 계측 ꡬ쑰 μ‹œκ°ν™”
  • μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈ 필터링
  • κ°œλ³„ ν…ŒμŠ€νŠΈ μž¬μ‹€ν–‰
  • μ½”λ“œ 컀버리지 확인
  • μ½˜μ†” 좜λ ₯ 확인

μ—λŸ¬ 디버깅

μƒμ„Έν•œ μ—λŸ¬ λ©”μ‹œμ§€

try-catch둜 μ—λŸ¬ 확인

비동기 μ½”λ“œ 디버깅

async/await 확인

νƒ€μž„μ•„μ›ƒ 증가

λͺ¨ν‚Ή 디버깅

Mock 호좜 확인

Mock 리셋 확인

λ°μ΄ν„°λ² μ΄μŠ€ μƒνƒœ 확인

쿼리 λ‘œκΉ…

ν…ŒμŠ€νŠΈ ν›„ 데이터 확인

Coverage 디버깅

컀버리지 확인

μ»€λ²„λ˜μ§€ μ•Šμ€ μ½”λ“œ μ°ΎκΈ°

Vitest μ„€μ • 디버깅

μ„€μ • 확인

vitest.config.ts:

ν™˜κ²½ λ³€μˆ˜ 확인

병렬 μ‹€ν–‰ 디버깅

격리 λͺ¨λ“œ λΉ„ν™œμ„±ν™”

일뢀 ν…ŒμŠ€νŠΈλŠ” 병렬 μ‹€ν–‰ μ‹œ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€:

순차 μ‹€ν–‰

μŠ€λƒ…μƒ· 디버깅

μŠ€λƒ…μƒ· μ—…λ°μ΄νŠΈ

μŠ€λƒ…μƒ· 확인

νƒ€μž… 체크 디버깅

νƒ€μž… μ—λŸ¬ 확인

νƒ€μž… ν…ŒμŠ€νŠΈ

ν…ŒμŠ€νŠΈ 격리 문제

beforeEach/afterEach 확인

λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 디버깅

λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ 확인

λ¦¬μ†ŒμŠ€ 정리 확인

Best Practices

1. μž‘μ€ λ‹¨μœ„λ‘œ ν…ŒμŠ€νŠΈ

2. 의미 μžˆλŠ” ν…ŒμŠ€νŠΈ 이름

3. AAA νŒ¨ν„΄ (Arrange-Act-Assert)

4. μ‹€νŒ¨ μ‹œ μΆ©λΆ„ν•œ 정보

κ΄€λ ¨ λ¬Έμ„œ