Skip to main content
pnpm sonamu test λͺ…λ Ήμ–΄λŠ” μ‹€ν–‰ 쀑인 dev μ„œλ²„μ˜ Vitest μΈμŠ€ν„΄μŠ€λ₯Ό 톡해 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. dev μ„œλ²„κ°€ 이미 λ‘œλ“œν•œ λͺ¨λ“ˆμ„ μž¬μ‚¬μš©ν•˜λ―€λ‘œ 맀번 μ΄ˆκΈ°ν™”ν•˜λŠ” pnpm test보닀 λΉ λ₯΄κ²Œ ν”Όλ“œλ°±μ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ „μ œμ‘°κ±΄

이 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ 두 κ°€μ§€κ°€ ν•„μš”ν•©λ‹ˆλ‹€:
  1. sonamu.config.tsμ—μ„œ devRunner ν™œμ„±ν™”
  2. pnpm dev둜 dev μ„œλ²„κ°€ μ‹€ν–‰ 쀑

sonamu.config.ts μ„€μ •

api/src/sonamu.config.ts

μ„€μ • μ˜΅μ…˜

κΈ°λ³Έ μ‚¬μš©λ²•

μ˜΅μ…˜

파일 κ²½λ‘œλŠ” μ—¬λŸ¬ 개λ₯Ό μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

Trace 좜λ ₯

--traces (-t) μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ©΄ ν…ŒμŠ€νŠΈ μ‹€ν–‰ 쀑 Naite.t()둜 μˆ˜μ§‘λœ trace 정보λ₯Ό 결과와 ν•¨κ»˜ 좜λ ₯ν•©λ‹ˆλ‹€. 각 traceλŠ” ν‚€, μ†ŒμŠ€ μœ„μΉ˜, 값을 ν¬ν•¨ν•©λ‹ˆλ‹€.
ν…ŒμŠ€νŠΈ μ½”λ“œμ—μ„œ Naite.t()λ₯Ό μ‚¬μš©ν•˜μ—¬ traceλ₯Ό 기둝할 수 μžˆμŠ΅λ‹ˆλ‹€:

λ™μž‘ 원리

pnpm sonamu testλŠ” dev μ„œλ²„ 내뢀에 μƒμ£Όν•˜λŠ” Vitest μΈμŠ€ν„΄μŠ€λ₯Ό HTTP μš”μ²­μœΌλ‘œ ν˜ΈμΆœν•©λ‹ˆλ‹€.
  1. CLIκ°€ dev μ„œλ²„μ˜ /__test__/run μ—”λ“œν¬μΈνŠΈμ— POST μš”μ²­μ„ λ³΄λƒ…λ‹ˆλ‹€.
  2. dev μ„œλ²„μ˜ DevVitestManagerκ°€ 상주 Vitest μΈμŠ€ν„΄μŠ€λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  3. κ²°κ³Όλ₯Ό JSON으둜 λ°˜ν™˜ν•˜λ©΄ CLIκ°€ μš”μ•½μ„ 좜λ ₯ν•©λ‹ˆλ‹€.

pnpm testμ™€μ˜ 비ꡐ

μ–Έμ œ μ–΄λ–€ 것을 μ‚¬μš©ν•˜λ‚˜μš”?
  • 개발 쀑: pnpm sonamu test둜 λΉ λ₯΄κ²Œ ν”Όλ“œλ°±μ„ λ°›μœΌμ„Έμš”. μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κ³  λ°”λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • CI/CD: pnpm testλ₯Ό μ‚¬μš©ν•˜μ„Έμš”. 독립적인 ν™˜κ²½μ—μ„œ 전체 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

μƒνƒœ 확인

CLIμ—μ„œ --status ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ HTTP μ—”λ“œν¬μΈνŠΈμ— 직접 μš”μ²­ν•˜μ—¬ DevRunner μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

문제 ν•΄κ²°

dev μ„œλ²„μ— μ—°κ²°ν•  수 μ—†λŠ” 경우

ν•΄κ²°: pnpm dev둜 dev μ„œλ²„λ₯Ό λ¨Όμ € μ‹œμž‘ν•˜μ„Έμš”.

devRunnerκ°€ ν™œμ„±ν™”λ˜μ§€ μ•Šμ€ 경우

ν•΄κ²°: sonamu.config.ts의 test.devRunner.enabledλ₯Ό true둜 μ„€μ •ν•˜κ³  dev μ„œλ²„λ₯Ό μž¬μ‹œμž‘ν•˜μ„Έμš”.

λ‹€μŒ 단계

ν…ŒμŠ€νŠΈ ꡬ쑰

Vitest 기반 ν…ŒμŠ€νŠΈ μ‹œμŠ€ν…œ μ•Œμ•„λ³΄κΈ°

dev

개발 μ„œλ²„ μžμ„Ένžˆ μ•Œμ•„λ³΄κΈ°