ทีมของฉันสร้างตำราพ่อครัวจำนวนมาก ฉันสงสัยว่าฉันควรตรวจสอบวิธีการและกรอบการทำงานอย่างไรเพื่อให้เราสามารถเริ่มสร้างการทดสอบเพื่อให้มั่นใจว่าโหนดของเราได้รับการกำหนดค่าอย่างเหมาะสมหรือไม่
ทีมของฉันสร้างตำราพ่อครัวจำนวนมาก ฉันสงสัยว่าฉันควรตรวจสอบวิธีการและกรอบการทำงานอย่างไรเพื่อให้เราสามารถเริ่มสร้างการทดสอบเพื่อให้มั่นใจว่าโหนดของเราได้รับการกำหนดค่าอย่างเหมาะสมหรือไม่
คำตอบ:
คุณอาจจะมองเข้าไปในVagrantสำหรับเรื่องนี้
วิดีโอแสดงวิธีการใช้คำสั่งผสมของคนจรจัดและเชฟตำรา และมีหน้าเฉพาะสำหรับ Vagrant และ Chef ในเว็บไซต์ Opscode (อัปเดตเมื่อวันที่ 2015-01-23: หน้าได้หายไป ... )
มีcucumber-chef
อัญมณีทับทิมและหนังสือที่เพิ่งเปิดตัวเนลสัน - สมิ ธ และอัล - "โครงสร้างพื้นฐานที่ขับเคลื่อนด้วยการทดสอบกับเชฟ" ที่ใช้ประโยชน์จากอัญมณีดังกล่าว - http://www.cucumber-chef.org/
เพิ่งจำได้จากรายการเฝ้าดู GitHub ของฉัน: https://github.com/gregretkowski/vmth/
VMTH (Virtual Machine Test Harness) จัดเตรียมกลไกในการทดสอบหน่วยโครงสร้างพื้นฐานอัตโนมัติของคุณ - นโยบายหุ่นเชิดสูตรพ่อครัวสคริปต์การปรับใช้ที่วางจำหน่ายและอื่น ๆ โดยใช้คุณสมบัติของจอภาพ VM ที่ทันสมัย (เช่น qemu) เพื่อเปลี่ยนสถานะของระบบ สถานะนั้นหลังจากการทดสอบแต่ละครั้งเพื่อให้ชุดการทดสอบสามารถดำเนินการบนอินสแตนซ์ VM อย่างต่อเนื่อง
มีตัวเลือกมากมาย
Opscode มีการสนับสนุนแผนงาน"no-op"ในการพัฒนาเชฟซึ่งจะช่วยในการทดสอบ เรายืนยันว่า "ไม่เลือก" ไม่จำเป็นต้องทำในสิ่งที่คุณต้องการ แต่เข้าใจถึงความต้องการคุณลักษณะ
คำตอบบางคำในที่นี้ดูเก่าไปหน่อย สำหรับ CI และการทดสอบในพื้นที่ฉันจะใช้เครื่องมือทดสอบเทียมอย่างTest Kitchenซึ่งรองรับ Vagrant เช่นกันหากคุณเคยใช้มันมาแล้ว
มันจะช่วยให้คุณสามารถใช้งาน coobkooks ของคุณกับโซลูชั่นคลาวด์และการจำลองเสมือนได้มากมายในวันนี้: EC2, มหาสมุทรดิจิตอล, Vagrant, Docker, ฯลฯ
นอกจากนี้ยังมีปลั๊กอินเพื่อให้คุณเรียกใช้หนึ่งในเครื่องมือทดสอบโครงสร้างพื้นฐานจำนวนมากที่มีอยู่ในปัจจุบัน:
จากประสบการณ์ของผมวิธีเดียวที่จะทำสิ่งนี้ได้ก็คือสภาพแวดล้อมที่จัดเตรียมและแนวทางการพัฒนาที่รอบคอบ การแกล้งทำงานจริงที่ต้องทำนั้นยุ่งและไม่น่าเชื่ออย่างมากและชุดทดสอบ CI ที่ใช้ในการคอมมิทหรือดันเป็นความพยายามอย่างมากในการเขียนและบำรุงรักษา (แม้ว่าพ่อครัวน่าจะดีกว่าหุ่นเชิดซึ่งเป็นประสบการณ์หลักของฉัน ) และใช้เวลาในการวิ่งอย่างไร้สาระ
แก้ไข
หลังจากที่ฉันเขียนสิ่งนี้ฉันก็รู้ทันทีว่าอาจมีวิธีทดสอบ "หน่วย" ที่มีประสิทธิภาพพอสมควรสำหรับสูตร Chef / Puppet ด้วยระบบไฟล์รวมและนั่งร้านจำนวนมาก อย่างไรก็ตามฉันไม่พบสิ่งใดที่มีใครทำไปแล้วในพื้นที่นี้ ฉันอาจพบว่าตัวเองเป็นโครงการ