
เวลาเราเริ่มเขียน Robot Framework ใหม่ๆ มันก็มักจะมีคําถามมากมายที่เรายังสับสนเต็มไปหมด เช่น เราจะเขียน syntax มันยังไง? อะไรคือ Tab? อะไรคือ Space? จนไปถึงเรื่องของเราจะใช้ IDE อะไรในการเขียน???
จริงๆเคยเขียนบทความเรื่องของการใช้ ๊Intellibot และ PyCharm ที่เป็น Python IDE ของ JetBrains ไปแล้วล่ะ แต่พอถึงเวลาจริงๆดันไปรู้สึกว่า SublimeText ใช้ง่ายกว่ามากเลย ทั้งเรื่องของ ความเร็ว, plugins และ ความใช้งานง่ายของมัน เลยการเป็น IDE หลักในการเขียน Robot Framework เลยก็ว่าได้
ลง package ใน Sublime Text ยังไง?
แต่คือต้องเข้าใจว่า sublime text มันก็แค่ text editor ตัวนึงธรรมดาเลย การที่จะให้มันจัดการกับไฟล์ robot ได้มันก็ต้องหา plugins มาลง (ซึ่ง sublime text มีเยอะมากกกกกก เราสามารถลองดูจากที่นี้ Package Control แต่ตัวหลักๆที่คนส่วนใหญ่จะลงก็จะมีพวกนี้ Essential Plugins พวกนี้ แต่ก็ไม่ต้องลงหมดอยู่ดีแหละ เลือกเอา)
ทีนี้ก็เกิดคําถามมากมายละ แล้วเราจะลงยังไงล่ะ? จะกด download ลงมาแตก zip ไฟล์ก็ไม่ใช่ยุ่งยากแบบนั้น ก่อนอื่นเราต้องลง Package Control ก่อน ถึงจะเลือกลง package อื่นๆที่เราต้องการได้

ก็ขั้นตอนไม่มีไรมากเพียงแค่
- กด Ctrl + ‘ หรือ View > Show Console
- แล้วก็ copy เจ้าพวกนี้ไปใส่แล้วกด Enter
สิ่งที่มันไปทําก็คือ python code ชุดนี้มันจะไป download package control ลงมาติดตั้งให้เรา
แล้วเวลาเรากดเปิด command palette (Ctrl + Shift + P) ขึ้นมา เราก็จะสามารถเลือก install package ได้ละ

Config Sublime Text สําหรับ robot ยังไง?
ตอนนี้เราคงเข้าใจแล้วว่า Sublime Text มันก็ Text Editor ตัวนึง สิ่งที่มันจะเข้ามาจัดการกับ Robot Framework ก็ plugin นั้นเอง โดยเราจะใช้ Robot Framework Assistant เป็นตัวจัดการกับไฟล์ Robot ต่างๆ

วิธีลงก็ง่ายๆคือ
- กดเปิด command palette (Ctrl + Shift + P)
- พิมย์ Install Package
- แล้วก็เลือก Robot Framework Assistant
แค่นี้เราก็ได้ plugins มาจัดการไฟล์ต่างๆของเราละ ซึ่งลงเสร็จจะมีหน้าตาอย่างนี้ (มีสี และ มีเมนูใหม่ขึ้นมาว่า Robot Framework)

เจ้า Plugin นี้ช่วยอะไรบ้าง?
ก่อนอื่นเราสามารถอ่านรายละเอียดเต็มๆได้จาก Github ของ Andriyko เจ้าของ Plugin นี้
นอกจากแสดงสีสันสวยงามให้เราแล้ว มันยังมี Feature หลักๆที่เราจะใช้บ่อยๆเลยคือ
- Scan
- Build
ที่เหลือก็แค่ปลีกย่อยแล้วล่ะ
Scan
ความสามารถของมันคือเรื่องการ Scan Keyword ทั้งหมดที่อยู่ใน Workspace ที่เราทํางานอยู่ได้เลย เช่น สมมุติเรามี keyword 100 ตัวเราต้องการที่จะเรียกใช้งานแบบ IDE ตัวอื่นอย่างเช่น Visual Studio ที่เรากด Ctrl + Click มันจะไปที่ method/function นั้นๆ
เจ้า Scan เนี่ยก็จะทําหน้าที่แบบเดียวกันให้เลย เพียงแต่หลังกด Scan แล้วเราต้อง Reindex Data (Ctrl + Alt + R) ให้มันด้วย (อารมณ์เหมือนเสมียนรวบรวมข้อมูลให้ทั้งหมดแล้วมาเรียงลําดับตามตัวอักษรให้ใหม่แบบนั้นแหละ)
Build
function หลักที่หลายคนชอบใช้กัน (ส่วนตัวไม่ชอบ ฮ่าๆ) มันคือการสั่ง Exceute Robot Framework ผ่าน Sublime เลย ซึ่งบางคนก็ชอบน่ะ เพราะแค่กด Build (Ctrl + B) มันก็จะทํางานละ โดย command ที่ไป exceute robot framework ก็จะถูกกําหนดที่นี้

ซึ่งจากตัวอย่างนี้เป็น Basic Command เลยในการรัน คือใช้ pybot.bat ระบุไป $file ที่เรากําลังเปิดอยู่ตรงๆเลย ด้วยการรันแบบนี้น่ะ มันจะทําให้ไฟล์ report พวก Log.html จะไปกองอยู่ตรงหน้าเดียวกันกับไฟล์เลย ซึ่งบางทีมันก็เสียเวลาเรามาเก็บกวาดอีก เลยไม่ค่อยชอบวิธีแบบนี้เท่าไร
อีกอย่างสมมุติถ้าเรามีคําสั่ง exceture หลากหลายการแก้ไฟล์เดียวก็อาจจะทําให้เสียเวลาอยู่ ส่วนตัวเลยจะใช้ batch script ในการรันใน command line ของ window มากกว่า
Noted
ไอ้การทํา scan + reindex พวกนี้น่ะมันใช้ python ในการจัดการน่ะ เพราะฉะนั้นแล้ว เวลาที่เราจะทํางานได้เราต้อง set python ให้ plugin ด้วยใน file setting ของ plugin

ออกมาหน้าตางี้ (มันจะแตกต่างกันนิดหน่อยถ้าเปรียบเทียบกับ SublimeText 3 น่ะ อันนี้ทําบน SublimeText 2- plugin จะคนละตัวกัน)

สรุป
แบบง่ายๆเลย IDE สําหรับการทํา Robot Framework คงจะแนะนํา Sublime Text + Robot Framework Assistant Plugin มากกว่า PyCharm + Intellibot น่ะ เพราะด้วยความคล่องตัวมันกินขาดไปเลย แถมยังมี Function Scan และ Build ที่เร็วมากอีก ก็แนะนําใช้ตัวนี้จะดีกว่า
Noted
การเขียน Robot Framework ที่ Based on Python มันจะมีเรื่องของ Tab และ Space เพราะฉะนั้นเราควรจะตั้งค่าใน Sublime ให้มันช่วย visualize ให้เรา โดยการไปปรับที่ Preferences > Setting – Default กับลองค้นคําว่า “draw_white_space” แล้วปรับเป็น “all”

จะได้ผลแบบนี้

เจ้าขีดยาวๆแปลว่าเรากด Tab (โดยปกติ Tab Size จะเป็น 4) ส่วน เจ้าจุดๆไข่ปลาคือการกด Space ด้วยวิธีนี้เราจะช่วยเราในการจัดการ test cases ได้ง่ายขึ้นมาก 🙂