Vitest · เริ่มต้นกับ Vitest
คำสั่ง `vitest run`
รัน test แบบ one-shot และเข้าใจผลลัพธ์ของ process
`vitest run` คือ one-shot run
`vitest run` สั่งให้ Vitest ค้นหาและรัน test หนึ่งรอบ เมื่อสรุปผลแล้ว process จะจบ เหมาะกับการตรวจผลให้แน่ใจก่อน commit หรือใช้ในคำสั่งที่ต้องทำงานแล้วคืนสถานะสำเร็จ/ล้มเหลวอย่างชัดเจน
ในโปรเจกต์ตัวอย่าง `pnpm test` ชี้ไปยัง `vitest run` ผ่าน `package.json`
ชื่อไฟล์ จำนวน test และเวลาอาจต่างกันในแต่ละเครื่อง ให้เริ่มอ่านจากสถานะและจำนวนที่ผ่าน/ไม่ผ่าน
อ่าน output จากภาพใหญ่ไปภาพเล็ก
เมื่อ command จบ ให้ดู output จากระดับรวมก่อน แล้วค่อยเจาะไปยังกรณีที่มีปัญหา ระดับแรกคือจำนวน test files ระดับถัดมาคือจำนวน test cases และสุดท้ายคือชื่อกรณีที่ผ่านหรือไม่ผ่าน
| ส่วนของ output | คำถามที่ตอบได้ |
|---|---|
| Test Files | มีกี่ไฟล์ที่ผ่านหรือไม่ผ่าน |
| Tests | มีกี่กรณีที่ผ่านหรือไม่ผ่าน |
| ชื่อ test | behavior ใดเป็นจุดที่ต้องตรวจต่อ |
| Duration | รอบนี้ใช้เวลาประมาณเท่าไร |
ถ้ามี test fail อย่ารีบแก้ค่า expected ให้ตรงกับค่าที่ได้รับเพียงเพื่อให้รอบนี้ผ่าน ให้กลับไปตรวจว่า requirement ต้องการผลลัพธ์ใด แล้วค่อยตัดสินว่าควรแก้ source หรือแก้ test
สถานะของ process บอกอะไรเรา
นอกจากข้อความที่เห็นใน terminal แล้ว command ยังคืน exit status ให้ระบบปฏิบัติการด้วย รอบที่ผ่านควรจบด้วยสถานะสำเร็จ ส่วนรอบที่มี test fail ควรคืนสถานะไม่สำเร็จ นี่ทำให้เครื่องมือภายนอกตัดสินใจต่อได้โดยไม่ต้องอ่านข้อความเอง
ในบทนี้ให้เข้าใจความหมายระดับ workflow ก่อน รายละเอียดการอ่าน diff และการ trace failure จะลงลึกใน phase Test ที่เชื่อถือได้
กฎสำคัญ
ใช้ `vitest run` เมื่อต้องการผลหนึ่งรอบ
คำสั่งรันจนจบแล้วคืนสถานะ เหมาะกับการตรวจผลที่ต้องการความแน่นอน
อ่านชื่อก่อนอ่าน implementation
ชื่อ test ที่ไม่ผ่านช่วยบอก behavior ที่ควรเริ่มตรวจสอบก่อน
สรุปวิธีอ่านผลการรัน
เริ่มจากชื่อไฟล์และชื่อ behavior จากนั้นดูจำนวนรวม และค่อยเปิดดูรายละเอียดของ failure เพื่อ trace ต่อ
ผ่านไม่ได้แปลว่าเข้าใจทุกบรรทัด
เป้าหมายของบทนี้คือเลือกคำสั่ง one-shot และอ่านสถานะรวมให้ได้ ส่วนการออกแบบ test และ assertion จะเรียนเป็นขั้นถัดไป