Vitest · เริ่มต้นกับ Vitest
Watch Mode
ใช้ Vitest ในโหมดเฝ้าดูไฟล์และรัน test ซ้ำระหว่างแก้ code
Watch Mode คือ feedback loop
Watch mode จะเปิด process ค้างไว้และเฝ้าดูการเปลี่ยนแปลงของ source code หรือ test file เมื่อเราบันทึกไฟล์ Vitest จะรัน test ที่เกี่ยวข้องใหม่ ทำให้วงจรแก้โค้ด → ดูผล → แก้ต่อสั้นลง
การเขียน `watch` แบบชัดเจนช่วยให้ผู้เริ่มต้นเห็นว่า process จะยังไม่จบทันที
watch mode ลดการสั่ง command ซ้ำ แต่ไม่ได้ตัดสินใจหรือแก้ source code ให้เรา
`vitest` กับ `vitest watch` เกี่ยวข้องกันอย่างไร
`vitest watch` บอกเจตนาชัดว่าต้องการเฝ้าดูไฟล์ ส่วนคำสั่ง `vitest` เปล่าจะเลือกพฤติกรรมตาม environment ของการรัน โดยทั่วไปจะเข้า watch mode ใน development และปรับเป็น run mode ใน CI หรือ terminal ที่ไม่โต้ตอบ
| คำสั่ง | พฤติกรรมหลัก | เหมาะกับ |
|---|---|---|
| `pnpm exec vitest watch` | เฝ้าดูและรันซ้ำเมื่อไฟล์เปลี่ยน | กำลังแก้โค้ดบนเครื่องตัวเอง |
| `pnpm exec vitest` | เลือก mode ตาม environment | workflow ที่เข้าใจ default ของเครื่องมือแล้ว |
| `pnpm test` | รัน `vitest run` แล้วจบ | ตรวจผลหนึ่งรอบก่อน commit |
สำหรับผู้เริ่มต้น ให้ใช้ `vitest watch` เมื่ออยากสื่อเจตนาแบบตรงไปตรงมา และใช้ `pnpm test` เมื่อต้องการตรวจรอบสุดท้ายแบบ one-shot
เลือกโหมดให้เหมาะกับสถานการณ์
| สถานการณ์ | โหมดที่เหมาะ | เหตุผล |
|---|---|---|
| กำลังแก้ function ในเครื่อง | watch | เห็น feedback หลัง save โดยไม่สั่งใหม่ |
| ตรวจผลก่อน commit | run | ได้ผลลัพธ์หนึ่งรอบและ process จบ |
| ตรวจใน CI หรือ terminal ที่ไม่โต้ตอบ | run | ไม่ควรมี process รอการเปลี่ยนแปลงต่อ |
เลือก mode จากช่วงของงาน ไม่ใช่จากความเคยชินกับ command เดียว
Watch ไม่ได้แปลว่า test จะผ่านเอง
มันช่วยส่ง feedback เร็วขึ้นเท่านั้น เรายังต้องอ่านผลและหาสาเหตุเมื่อ behavior ไม่ตรงที่คาด
สรุป Setup ทั้ง phase
หลังจบ phase นี้ ผู้เรียนควรรู้ว่าโปรเจกต์ต้องติดตั้งอะไร ตั้งคำสั่งอย่างไร วางไฟล์แบบไหน และเลือก run หรือ watch เมื่อใด
กฎสำคัญ
ติดตั้งแบบ local
ให้ project เป็นเจ้าของ version และ command ของ Vitest
`pnpm test` คือ one-shot
ใช้ตรวจผลหนึ่งรอบและรอ exit status ที่ชัดเจน
watch ใช้ระหว่างพัฒนา
เปิด feedback loop แล้วหยุดด้วย `Ctrl + C` เมื่อจบงาน