Playwright มีกติกาในการเรียงลำดับการรัน Test ที่ค่อนข้างชัดเจน โดยยึดตามลำดับตัวอักษร เป็นหลักครับ นี่คือรายละเอียดว่าโครงสร้างชื่อไฟล์และ Folder ส่งผลอย่างไร
📂 1. การเรียงลำดับตาม Folder และ File
Playwright จะสแกนหาไฟล์ Test แล้วเรียงลำดับการทำงานดังนี้
- ชื่อ Folder: จะรัน Folder ที่ขึ้นต้นด้วยตัวอักษรก่อน
- ชื่อไฟล์: ภายใน Folder เดียวกัน จะเรียงตามชื่อไฟล์
💡 เทคนิคยอดนิยม: ถ้าคุณต้องการคุมลำดับการรัน นิยมใช้ตัวเลขนำหน้าชื่อไฟล์ครับ
01-setup.spec.ts02-feature-a.spec.ts03-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 ผ่านแล้ว },
],
สรุปสั้น ๆ
- ชื่อไฟล์ / Folder: มีผลต่อลำดับการ “เริ่ม”
- ถ้าอยากคุมลำดับ: ให้ใช้ตัวเลขนำหน้าชื่อไฟล์ เช่น
01-...,02-... - คำเตือน: ถ้าเปิดรันแบบ Parallel ลำดับอาจจะสลับกันได้ตามความเร็วของแต่ละหน้าจอครับ
อ่านเพิ่มเติม