Vitest 5 เปิดตัว เน้นประสิทธิภาพสูง พร้อมปรับปรุงค่าเริ่มต้นให้เข้มงวดขึ้น

Vitest ซึ่งเป็นเฟรมเวิร์กสำหรับการทดสอบที่ทำงานร่วมกับ Vite และดูแลโดย VoidZero ได้ปล่อย Vitest 5.0 ซึ่งเป็นเวอร์ชันใหญ่ที่ให้ความสำคัญกับความเร็วสูงสุด ควบคู่ไปกับการปรับปรุงค่าเริ่มต้นหลายอย่างให้เข้มงวดขึ้น

จากการทดสอบกับโปรเจกต์ขนาดต่างๆ ทีมงานรายงานว่าพบการเพิ่มขึ้นของประสิทธิภาพประมาณ 8 ถึง 25% ในการตั้งค่าส่วนใหญ่ และสูงถึง 53% ในกรณีของ VM pool ซึ่งเป็นผลมาจากการที่โปรเจกต์ในไลน์เดียวกันแชร์ Vite server เดียวกัน และการใช้ on-disk fsModuleCache ที่เสถียรขึ้น

ในส่วนของ Browser Mode นั้นมีการเพิ่ม Trace View ที่บันทึกการโต้ตอบและการยืนยันแต่ละครั้งเป็น DOM snapshot สำหรับการเล่นซ้ำทีละขั้นตอน ขณะที่ API ใหม่อย่าง vi.when ช่วยให้ spy เดียวสามารถคืนค่าต่างกันตามอาร์กิวเมนต์ได้

การเปลี่ยนแปลงสำคัญอื่นๆ ได้แก่ clearMocks ถูกตั้งค่าเริ่มต้นเป็น true, การทดสอบ async ที่ไม่รอการตอบกลับจะล้มเหลวแทนที่จะแจ้งเตือน, และการเรียกใช้ vi.mock ที่ถูก hoist ไว้ภายนอกระดับบนสุดจะเกิดการ throw

คู่มือการย้ายและการเปลี่ยนแปลงใน v5.0.0 ได้ระบุการเปลี่ยนแปลงทั้งหมด และเอาต์พุตของ reporter, attachments, และ blob reports จะถูกรวมไว้ในไดเรกทอรี .vitest/ ทำให้ต้องอัปเดตเส้นทางสำหรับ CI artifact

แม้ว่าการปรับตัวเข้ากับระบบนิเวศจะยังคงดำเนินต่อไป โดยมีการกล่าวถึงว่าการตั้งค่าของ Cloudflare ใน vitest-pool-workers นั้นผูกติดกับ v4 ทำให้โปรเจกต์ใหม่ที่ใช้เวอร์ชันนี้อาจล้มเหลวก่อนการทดสอบครั้งแรกด้วยซ้ำ

ศัพท์ที่ควรรู้

  • Vitest – เฟรมเวิร์กสำหรับการทดสอบที่ทำงานร่วมกับ Vite และดูแลโดย VoidZero
  • Vite server – เซิร์ฟเวอร์ที่ใช้ในการรันโปรเจกต์ ซึ่งในเวอร์ชันนี้มีการแชร์กันเพื่อเพิ่มความเร็ว
  • on-disk fsModuleCache – แคชสำหรับไฟล์ในดิสก์ที่ช่วยให้การโหลดโมดูลรวดเร็วขึ้น
  • Browser Mode – โหมดการทดสอบที่จำลองการทำงานในเบราว์เซอร์
  • clearMocks – ฟังก์ชันที่ใช้เคลียร์สถานะการจำลอง (mock) ของการทดสอบ

ที่มา: infoq.com

Leave a Comment