Run e2e tests บน TravisCI (ถึงกับต้อง blog อ่ะ)
ขณะที่ผมกำลังทำ Perlclip เป็น Prograssive Web App เพื่อให้ใช้บนมือถือได้นั้น ผมก็พบว่ามัน run e2e test บน travis ไม่ได้ ลองมาดู log ตอน error กัน

Error ไม่ค่อยสื่อเท่าไหร่ รู้แค่ว่ามัน start selenium server ไม่ได้
หลังจากค้นคว้าสักพัก ทำให้เข้าใจว่าจะ start selenium server บน travis ci นั้น ต้องมี 3 อย่าง
- sudo require — ไม่แน่ใจเหมือนกันว่าทำไมต้องใช้ แต่ลองเอาออกแล้วไม่ได้
- chrome addons — ต้องใช้ chrome เพราะผม run test บนนั้น
- ทำให้มัน work โดยไม่ต้องใช้หน้าจอ — มีหลายท่า แต่ผมใช้
xvfb-run
สุดท้ายแล้วได้ .travis.yml หน้าตาประมาณนี้มา

บรรทัดแรกจะเห็น sudo: required ส่วนบรรทัดที่ 5, 6 จะเป็นการ add chrome เข้ามา และบรรทัดที่ 9 จะเห็นว่าผมครอบคำสั่ง npm run e2e ไว้ด้วย xvfb-run ซึ่งจะทำการ start xvfb (virtual frame buffer เอาไว้ทำงานเหมือนจอ แต่อยู่ใน memory) ขึ้นมาก่อนคำสั่ง run e2e นั่นเอง
references: