test โดย ignore vendor

อย่างที่ทราบว่าตั้งแต่ go version 1.5 เราสามารถเอา lib dependencies ทั้งหลายมาใส่ไว้ใน directory ที่ชื่อ vendor ได้ โดยที่โค้ดของเราจะมองหา package ที่อยู่ใน vendor นี้ก่อนเสมอ ทำให้เราสามารถ แช่แข็งเครื่องมือของเราเอาไว้ได้ โดยไม่ต้อง go get มาใหม่ ซึ่งจะลดผลกระทบจาก version ที่เปลี่ยนไปได้ แต่หลายคนที่เริ่มใช้ vendor ก็จะพบปัญหาบางอย่าง เช่นการเทส เพราะมีไม่น้อยที่เวลารันเทส จะสั่งประมาณนี้ go test ./… สำหรับมือใหม่ ./… หมายถึงทุกๆ directory จาก จุดที่รันคำสั่ง เช่นเมื่อเราอยู่ที่  /home/pallat/workspace/gopath/src/mywork แล้วเราสั่งว่า  go test ./… หมายความว่า ให้รันเทสที่ /home/pallat/workspace/gopath/src/mywork และ directory ในนี้ทั้งหมดด้วย ทีนี้ เราก็ไม่อยากให้มันเทสของใน vendor […]

Continue reading →