หมวดหมู่: Testing

Playwright: tests ชื่อไฟล์, folderPlaywright: tests ชื่อไฟล์, folder

Playwright มีกติกาในการเรียงลำดับการรัน Test ที่ค่อนข้างชัดเจน โดยยึดตามลำดับตัวอักษร เป็นหลักครับ นี่คือรายละเอียดว่าโครงสร้างชื่อไฟล์และ Folder ส่งผลอย่างไร


📂 1. การเรียงลำดับตาม Folder และ File

Playwright จะสแกนหาไฟล์ Test แล้วเรียงลำดับการทำงานดังนี้

  1. ชื่อ Folder: จะรัน Folder ที่ขึ้นต้นด้วยตัวอักษรก่อน
  2. ชื่อไฟล์: ภายใน Folder เดียวกัน จะเรียงตามชื่อไฟล์

💡 เทคนิคยอดนิยม: ถ้าคุณต้องการคุมลำดับการรัน นิยมใช้ตัวเลขนำหน้าชื่อไฟล์ครับ

  1. 01-setup.spec.ts
  2. 02-feature-a.spec.ts
  3. 03-cleanup.spec.ts

🔢 2. ลำดับภายในไฟล์เดียวกัน

ภายในไฟล์เดียวที่คุณเขียนคำสั่ง test (...) ไว้หลาย ๆ Block

  • Playwright จะรัน จากบนลงล่าง ตามลำดับที่คุณเขียนไว้ครับ

⚡ 3. ตัวแปรสำคัญ: Parallelism

นี่คือจุดที่ “ลำดับ” อาจจะเปลี่ยนไปจนคุณงงได้ครับ

  • ถ้าเปิด Parallel : Playwright จะพยายามรัน Test หลาย ๆ ไฟล์พร้อมกันในเวลาเดียว ทำให้ลำดับที่ใครจะ “จบก่อน” หรือ “เริ่มก่อน” อาจจะไม่เป็นไปตามชื่อไฟล์เป๊ะ ๆ เพราะมันรันคนละจอ
  • ถ้าปิด Parallel : ลำดับจะเป็นไปตามชื่อไฟล์และ Folder แบบ 100% ครับ

🛠️ วิธีควบคุมลำดับที่แน่นอน

หากคุณมี Test ที่ “ต้องรอให้อีกตัวเสร็จก่อน” Playwright แนะนำให้ใช้ฟีเจอร์ test.step หรือ Project Dependencies แทนการฝากความหวังไว้กับชื่อไฟล์ครับ

// ตัวอย่างใน playwright.config.ts
projects: [ { name: 'setup', testMatch: /global.setup\.ts/, }, { name: 'chromium', use: { ...devices['Desktop Chrome'] }, dependencies: ['setup'], // จะรัน chromium ก็ต่อเมื่อ setup ผ่านแล้ว },
],

สรุปสั้น ๆ

  1. ชื่อไฟล์ / Folder: มีผลต่อลำดับการ “เริ่ม”
  2. ถ้าอยากคุมลำดับ: ให้ใช้ตัวเลขนำหน้าชื่อไฟล์ เช่น 01-..., 02-...
  3. คำเตือน: ถ้าเปิดรันแบบ Parallel ลำดับอาจจะสลับกันได้ตามความเร็วของแต่ละหน้าจอครับ

อ่านเพิ่มเติม