ทางทีมพัฒนาของ Spotify.com เพิ่งปล่อย Git-test ออกมา
ซึ่งแน่นอนว่าต้องทำงานร่วมกับ Git
โดยที่สร้างมาเพื่ออำนวยความสะดวก
ในการทดสอบระบบที่พัฒนาในทุกๆ commit
บน branch ที่คุณกำลังทำงานอยู๋ได้เลย
ดังนั้น มาดูกันว่าเราจะใช้งานอย่างไรกัน ?
เริ่มต้นที่แนวคิดของการสร้าง Git test
ถ้าเราสามารถทำการทดสอบ code ได้ทุกๆ commit จะดีไหม ?
ปกติถ้าเราทดสอบ code แล้วเกิดปัญหา หรือ ไม่ผ่าน เราจะแก้ไขปัญหาอย่างไร ?
ถ้าใช้ Git ก็จะทำการกลับไปยัง commit ก่อนหน้าหรือไม่ ?
เพื่อทำการทดสอบว่าผ่านหรือไม่ ?
ทำไปเรื่อยๆ จนกว่าจะพบปัญหา!!
หรือทำการแก้ไขตาม test case นั้นๆ เลย …
ดังนั้น ถ้าเราสามารถทดสอบได้ทุกๆ commit เลยล่ะ มันจะสะดวกกว่าไหม ?
ยังไม่พอ ทางทีมพัฒนายังมีเป้าหมายการสร้าง Git test เพิ่มอีกคือ
ต้องใช้งานง่ายๆ
ต้องใช้งานสะดวก สำหรับคนใช้งาน git
การทำงานพื้นฐานของ Git test
จะทำการวนทดสอบ code แต่ละ commit จากการใช้คำสั่ง git rev-list
ซึ่งเป็นการดึง commit ทั้งหมดขึ้นมานั่นเอง
โดยเราจะต้องกำหนดไปว่า จะให้ run test ด้วยคำสั่งอะไร
จากนั้นก็ทำการทดสอบแต่ละ commit
ตัวอย่าง
$git rev-list HEAD
ได้ผลการทำงานดังรูป
ยังไม่พอนะ Git test จะทำการเก็บ caching ของการทดสอบแต่ละ commit ไว้ด้วย
เพื่อช่วยให้การทดสอบมันรวดเร็วขึ้น
ตัวอย่างการทดสอบครั้งที่ 1
$git test -v --verify="mvn test" HEAD
ผลการทำงานเป็นดังรูป
ตัวอย่างการทดสอบครั้งที่ 2 จะเห็นว่าทำการดึงข้อมูลจาก caching แทน
$git test -v --verify="mvn test" HEAD
ผลการทำงานเป็นดังรูป
ถ้าต้องการ clear ผลการทดสอบในแต่ละ commit ออกไปทั้งหมด
ใช้คำสั่งดังนี้
$git test --clear
ยังไม่พอนะ Git test ยังเปิดช่องทางให้เรากำหนดได้ว่า
- pre คือ ก่อนทำการทดสอบจะให้ทำอะไร
- post คือ หลังจากการทดสอบจะให้ทำอะไร
ถ้าต้องการรู้ว่ามีอะไรให้ใช้บ้าง
สามารถดูเพิ่มเติมได้ที่ Git-test repository
ปิดท้ายด้วยการติดตั้ง
โดยผมติดตั้งบนเครื่อง Mac ก็จะติดตั้งแบบง่ายๆ ดังนี้
1. ทำการ download หรือ clone Git test มาดังนี้
$git clone git@github.com:spotify/git-test.git
2. ทำการติดตั้งผ่าน install ดังนี้
$cd git-test $install git-test /usr/local/bin $install git-test.1 /usr/local/share/man1
เพียงเท่านี้ก็สามารถใช้งานได้แล้วครับ