
สำหรับการทดสอบด้วยภาษา JavaScript ทั้งหน้าบ้านและหลังบ้าน
น่าจะใช้งาน Vitest กันเยอะพอควร ด้วยความเร็วและง่ายนั่นเอง
โดยได้ปล่อย Vitest version 5.0 ออกมา ซึ่งมีการเปลี่ยนแปลงที่น่าสนใจดังนี้
- ปรับปรุงความเร็วในการทดสอบ
- ปรับปรุงของ trace view ใน browser mode หรือทดสอบผ่าน web browser นั่นเอง
- ปรับปรุง code/test coverage ด้วยการ fork istanbul มาดูแลเองไปเลย จะได้จัดการได้ง่ายขึ้น
มาดูในรายละเอียดกันนิดหน่อย
เรื่องหลัก ๆ ของการเปลี่ยนแปลงคือ ปรับปรุงความเร็วของการทดสอบ
ให้รวดเร็ว และ น่าเชื่อถือมากยิ่งขึ้น
ยิ่งเร็วก็ยิ่งได้รับ feedback เร็วขึ้นนั่นเอง
ซึ่งทำการปรับปรุงเรื่องของ cached file ของการ transform อยู่ใน memory
ทำให้แต่ละ process สามารถ shared กันได้เลย
โดยที่ไม่ต้องไปอ่านจาก disk ซ้ำ ๆ
ลดจำนวน dependency ที่ download มาใน node_modules/ ลงไป
ตรงนี้ทำให้เวลาในการ resolve ต่าง ๆ ลดลงไปอย่างมาก
รวมทั้งปรับเปลี่ยนโครงสร้างของ project และ dependency ต่าง ๆ
เป็น inline เข้ามา เช่น expect ด้วย chai เป็นต้น
รวมทั้งยังมี hint หรือคำแนะนำ สำหรับการ config ให้รวดเร็วขึ้นด้วย
หรือใช้งานเองผ่าน vitest doctor
และได้ปรับอีกหลาย ๆ อย่าง เช่น
- clearMocks จะกำหนดค่า default=true เสมอ ดังนั้นก่อนที่จะ run ในทุก ๆ test case จะ clear mock ให้เองเสมอ
- กำหนดจำนวนการ run ซ้ำ ผ่าน CLI ด้วย option –repeats ซึ่งในกับ flaky test
- เข้มงวดในการ assertion สำหรับ sync task ต้องใช้ async-await เสมอ
- ถ้าในการทดสอบผ่าน browser mode แล้วเกิด error จะทำการแสดงผล error ในรูปของ ARIA Tree
- การตรวจสอบค่าของ locator ต่าง ๆ จะเป็นแบบ extractly แทนแบบ partial แล้ว (default) ซึ่งสามารถเปลี่ยนแปลงได้
อย่าลืม upgrade กันด้วย
แถมยังมี migration guide ไมาให้ด้วย
เพราะว่ามี breaking change เยอะเลย