มีแนวทางปฏิบัติที่ดีที่สุดสำหรับการแยกการทดสอบหน่วยและการทดสอบบูรณาการใน GoLang (เป็นพยาน) หรือไม่ ฉันมีการทดสอบหน่วยหลายอย่าง (ซึ่งไม่ต้องพึ่งพาทรัพยากรภายนอกใด ๆ จึงทำงานได้เร็วมาก) และการทดสอบการรวม (ซึ่งอาศัยทรัพยากรภายนอกใด ๆ จึงทำงานช้าลง) ดังนั้นฉันต้องการให้สามารถควบคุมได้ว่าจะรวมการทดสอบการรวมเข้าด้วยกันเมื่อฉันพูดgo test
หรือไม่
เทคนิคที่ตรงไปตรงมาที่สุดดูเหมือนจะเป็นการกำหนดแฟล็ก -integrate ใน main:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
จากนั้นเพิ่ม if-statement ที่ด้านบนของการทดสอบการรวมทุกครั้ง:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
นี่คือสิ่งที่ดีที่สุดที่ฉันทำได้หรือไม่? ฉันค้นหาเอกสารประกอบการเป็นพยานเพื่อดูว่าอาจมีหลักการตั้งชื่อหรือสิ่งที่ทำให้ฉันบรรลุผลสำเร็จ แต่ก็ไม่พบอะไรเลย ฉันพลาดอะไรไปรึเปล่า?