สำหรับการทดสอบด้วยภาษา 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 เยอะเลย