แนวปฏิบัติที่ดีที่สุดสำหรับการทดสอบสูตรอาหารเชฟ?


18

ทีมของฉันสร้างตำราพ่อครัวจำนวนมาก ฉันสงสัยว่าฉันควรตรวจสอบวิธีการและกรอบการทำงานอย่างไรเพื่อให้เราสามารถเริ่มสร้างการทดสอบเพื่อให้มั่นใจว่าโหนดของเราได้รับการกำหนดค่าอย่างเหมาะสมหรือไม่


ดูเหมือนว่ามันจะเป็นเรื่องของการปรุงอาหาร.)
มาร์คเฮนเดอร์สัน

ฉันคิดว่าคุณกำลังพูดถึง Chef อยู่ครู่หนึ่ง: en.wikipedia.org/wiki/Chef_%28programming_language%29
Janne Pikkarainen

คำตอบ:


7

คุณอาจจะมองเข้าไปในVagrantสำหรับเรื่องนี้ วิดีโอแสดงวิธีการใช้คำสั่งผสมของคนจรจัดและเชฟตำรา และมีหน้าเฉพาะสำหรับ Vagrant และ Chef ในเว็บไซต์ Opscode (อัปเดตเมื่อวันที่ 2015-01-23: หน้าได้หายไป ... )


3

มีcucumber-chefอัญมณีทับทิมและหนังสือที่เพิ่งเปิดตัวเนลสัน - สมิ ธ และอัล - "โครงสร้างพื้นฐานที่ขับเคลื่อนด้วยการทดสอบกับเชฟ" ที่ใช้ประโยชน์จากอัญมณีดังกล่าว - http://www.cucumber-chef.org/

เพิ่งจำได้จากรายการเฝ้าดู GitHub ของฉัน: https://github.com/gregretkowski/vmth/

VMTH (Virtual Machine Test Harness) จัดเตรียมกลไกในการทดสอบหน่วยโครงสร้างพื้นฐานอัตโนมัติของคุณ - นโยบายหุ่นเชิดสูตรพ่อครัวสคริปต์การปรับใช้ที่วางจำหน่ายและอื่น ๆ โดยใช้คุณสมบัติของจอภาพ VM ที่ทันสมัย ​​(เช่น qemu) เพื่อเปลี่ยนสถานะของระบบ สถานะนั้นหลังจากการทดสอบแต่ละครั้งเพื่อให้ชุดการทดสอบสามารถดำเนินการบนอินสแตนซ์ VM อย่างต่อเนื่อง


1

มีตัวเลือกมากมาย

Opscode มีการสนับสนุนแผนงาน"no-op"ในการพัฒนาเชฟซึ่งจะช่วยในการทดสอบ เรายืนยันว่า "ไม่เลือก" ไม่จำเป็นต้องทำในสิ่งที่คุณต้องการ แต่เข้าใจถึงความต้องการคุณลักษณะ


1

คำตอบบางคำในที่นี้ดูเก่าไปหน่อย สำหรับ CI และการทดสอบในพื้นที่ฉันจะใช้เครื่องมือทดสอบเทียมอย่างTest Kitchenซึ่งรองรับ Vagrant เช่นกันหากคุณเคยใช้มันมาแล้ว

มันจะช่วยให้คุณสามารถใช้งาน coobkooks ของคุณกับโซลูชั่นคลาวด์และการจำลองเสมือนได้มากมายในวันนี้: EC2, มหาสมุทรดิจิตอล, Vagrant, Docker, ฯลฯ

นอกจากนี้ยังมีปลั๊กอินเพื่อให้คุณเรียกใช้หนึ่งในเครื่องมือทดสอบโครงสร้างพื้นฐานจำนวนมากที่มีอยู่ในปัจจุบัน:

  • serverspec - เฟรมเวิร์กการทดสอบที่ได้รับความนิยมมากที่สุด
  • goss - YAML ง่ายไบนารีในตัวเองเร็วมาก
  • Inspec - ลองคิดดูสิเมื่อเซิร์ฟเวอร์เพคปรับปรุง (เขียนโดยพ่อครัว)
  • testinfra - เฟรมเวิร์กการทดสอบเซิร์ฟเวอร์ที่ใช้ Python

0

จากประสบการณ์ของผมวิธีเดียวที่จะทำสิ่งนี้ได้ก็คือสภาพแวดล้อมที่จัดเตรียมและแนวทางการพัฒนาที่รอบคอบ การแกล้งทำงานจริงที่ต้องทำนั้นยุ่งและไม่น่าเชื่ออย่างมากและชุดทดสอบ CI ที่ใช้ในการคอมมิทหรือดันเป็นความพยายามอย่างมากในการเขียนและบำรุงรักษา (แม้ว่าพ่อครัวน่าจะดีกว่าหุ่นเชิดซึ่งเป็นประสบการณ์หลักของฉัน ) และใช้เวลาในการวิ่งอย่างไร้สาระ

แก้ไข

หลังจากที่ฉันเขียนสิ่งนี้ฉันก็รู้ทันทีว่าอาจมีวิธีทดสอบ "หน่วย" ที่มีประสิทธิภาพพอสมควรสำหรับสูตร Chef / Puppet ด้วยระบบไฟล์รวมและนั่งร้านจำนวนมาก อย่างไรก็ตามฉันไม่พบสิ่งใดที่มีใครทำไปแล้วในพื้นที่นี้ ฉันอาจพบว่าตัวเองเป็นโครงการ


การทดสอบโครงสร้างพื้นฐานนั้นมีความสำคัญอย่างมาก โดยธรรมชาติมีวิธีการจำนวนมากเช่นการทำงานและไม่ทำงานจำเป็นต้องใช้วิธีนี้แตกต่างจากวิธีการซอฟต์แวร์เล็กน้อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.