Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Golang :: ทำการทดสอบแบบอัตโนมัติ เมื่อมีการเปลี่ยนแปลง

$
0
0

ปัญหา เมื่อทำการแก้ไข production code หรือ test code แล้ว
ต้องทำการ run ชุดการทดสอบเองเสมอ ซึ่งน่าเบื่อมาก ๆ 
ดังนั้นจึงอยากให้ทำการทดสอบแบบอัตโนมัติ (Continuous Testing)
เมื่อมีการเปลี่ยนแปลง เหมือนกับพวก JavaScript framework ต่าง ๆ

วิธีการแก้ไข

เมื่อไปดู proposal ที่เปิดมาใจภาษา Go พบว่า
เคยมีคนขอ feature นี้แล้วที่ 
Proposal: cmd/go : add "go test" with "-watch" argument for automatic reload test
เป็นแนวทางที่น่าสนใจมาก ๆ  ชื่อคนขอคุ้น ๆ นะ !!

แต่ว่าก็ตกไป เนื่องจากเรื่องของความซับซ้อน
และเครื่องมือที่ใช้ในการสร้าง feature นี้เยอะเกินไป
รวมทั้งมีปัญหาเรื่องของ portability บน OS ต่าง ๆ นั่นเอง

ดังนั้นให้ไปใช้เครื่องมือตามแต่ละ OS นะ

ยกตัวอย่างเช่น

  • Linux ใช้ inotifywait
  • Mac ใช้ fswatch

ตัวอย่างการใช้งาน fswatch ดังนี้

[gist id="f33f8e627c64366264334bd86c64d29a" file="run_test.sh"]

ให้ทำการ run file ข้างต้นค้างไว้
จากนั้นทำการแก้ไขไฟล์ต่าง ๆ ที่มีนามสกุล *.go
ได้ผลการทำงานเป็นดังนี้

[gist id="f33f8e627c64366264334bd86c64d29a" file="1.txt"]

เพียงเท่านี้ก็ใช้งานได้ละ มีสีด้วยนะ
ขอให้สนุกกับการ coding


Viewing all articles
Browse latest Browse all 1997

Trending Articles