เครื่องมือสำหรับการทดสอบหน่วยในวีโอไอพี


23

สิ่งใดที่คุณใช้สำหรับการทดสอบหน่วยในวีโอไอพี หรือคุณรู้อะไรเกี่ยวกับการทดสอบหน่วยและวีโอไอพี ไม่ว่าคุณจะทำ TDD หรือเพียงแค่ต้องการให้มีการทดสอบหน่วยครอบคลุมสำหรับส่วนประกอบโครงการของคุณคุณต้องมีเครื่องมือบางอย่างในการทำเช่นนี้

วิธีการขั้นพื้นฐานแรกคือการใช้ phpunit ธรรมดา แต่มีสิ่งที่ต้องใช้ลูกเล่นเพิ่มเติมเพื่อให้วีโอไอพี "ทดสอบ"

ทุกสิ่งที่ฉันทำงานด้วยเกี่ยวข้องกับ phpunit:

  • MTAF
  • EcomDev_PHPUnit (ข้อเสีย: ไม่สามารถทดสอบอีเมลได้)
  • TechDivision_MagentoUnitTesting (พยายาม backport Magento 2 Unit Tests)
  • Mage-Test (การทดสอบหน่วยน้ำหนักเบาสำหรับ Magento)

มีตัวเลือกอื่น ๆ อีกไหม?

คำตอบ:


14

ตรวจสอบ PHPSpec ด้วยMageSpecหากคุณต้องการบางสิ่งที่ไม่ได้อิงกับ PHPUnit แต่ด้วย Magento Integration มันใช้งานได้ แต่ไม่เพียง แต่ค่อนข้างพร้อมสำหรับเวลาสำคัญ สำหรับการเยาะเย้ย PHPSpec 2 ใช้คำทำนาย (ซึ่งยอดเยี่ยม) แต่ไม่ชอบนักท่องเวทย์มนตร์และผู้ตั้งตัวเลย ด้วยเหตุนี้จึงควรใช้Mockeryแทนซึ่งใช้งานได้ดี (และฉันก็ชอบมากเช่นกัน)

จากนั้นก็มี Behat with BehatMageสำหรับ BDD พร้อม Magento คุ้มค่ากับการดู แต่มันล้มเหลวตัวอย่างเช่นถ้าคุณต้องการทดสอบมุมมองร้านค้าที่แตกต่างกันในโดเมนที่แตกต่างกัน

นอกจากนี้ยังมีส่วนขยายของ BehatMage ที่เรียกว่าMageBehat (การตั้งชื่ออันน่ากลัว!) ซึ่งออกมาจากการแฮ็กตัน มันมีการดำเนินการเฉพาะวีโอไอพีจำนวนมากให้กับ BehatMage แต่ตามจริงแล้วการแก้ปัญหาบางอย่างที่ใช้นั้นเป็นวิธีการแฮ็กมากกว่าและจากนั้นจึงแก้ไขปัญหาจริง ๆ ยังคงใช้งานได้

ฉันหวังว่าจะเห็นทั้งสองโครงการ - MageSpec และ BehatMage - เจริญรุ่งเรืองในอนาคต


ขอบคุณ Vinai สำหรับคำตอบของคุณ ฉันรู้เกี่ยวกับ BehatMage และงานที่ทำโดยทีมงานที่ Inviqa / Session Digital (มันไม่ชัดเจนสำหรับโครงสร้าง บริษัท ของพวกเขา) ... ฉันกำลังมองหาสิ่ง phpunit เท่านั้น Behat / BehatMage ไม่ใช่สิ่งที่น่าสนใจสำหรับฉันฉันเล่นกับ MageSpec ในขณะที่ผ่านมา
FlorinelChis

ภาษาอังกฤษไม่ใช่ภาษาแม่ของฉันรายละเอียดที่ฉันให้ไว้อาจชัดเจนขึ้น ฉันกำลังทำการวิจัยบางอย่างสำหรับกลุ่มผู้ใช้ Magento ในลอนดอน
FlorinelChis

4

PHPUnit คือสิ่งที่ Magento 2 ใช้ นี่คือไฟล์ตัวอย่างใน GitHub https://github.com/magento/magento2/blob/master/dev/tests/unit/testsuite/Magento/Captcha/Helper/DataTest.php (ฉันเลือกไฟล์นั้นโดยการสุ่ม) คุณอาจต้องการดูวิธีการทดสอบ Magento 2 อย่างรวดเร็วเพื่อให้ทุกสิ่งที่คุณทำตอนนี้เข้ากันได้กับ Magento 2 เมื่อเปิดตัว


ฉันไม่คิดว่า OP กำลังพูดถึง Magneto 2 ที่นี่
Marius

3

คุณควรไปด้วยEcomDev PHPUnit

โดยส่วนตัวผมเชื่อว่านักพัฒนาวีโอไอพีทุกคนควรพยายามแก้ปัญหาการทดสอบหน่วยที่สอดคล้องกัน EcomDev นำเสนอกรอบงานที่ใช้บ่อยที่สุดและเป็นผู้ใหญ่ที่สุดของเฟรมเวิร์กเหล่านี้ดังนั้นคุณจึงมีกลุ่มนักพัฒนาที่มีประสบการณ์มาแล้ว การใช้เฟรมเวิร์กเดี่ยวยังช่วยลดความจำเป็นในการติดตั้งเฟรมเวิร์กที่แตกต่างกันหลายพันล้าน

EcomDev PHPUnit มีระเบียบแบบแผนนี้ในการวางการทดสอบโดยตรงพร้อมกับรหัสการผลิตอย่างไรก็ตาม โชคดีที่มันสามารถแก้ไขได้ง่าย ๆ ด้วยการแก้ไขโค้ดสองสามบรรทัด EcomDev ยังใช้เวลาว่างในการอัปเดต (แม้ว่า Github repo จะแสดงสัญญาณของกิจกรรมเพื่อให้พวกเขายังมีชีวิตอยู่อย่างชัดเจน)


ดังนั้นการพูดทั้งหมดนั้นมี repo ที่ไหนสักแห่งที่มีชุดของการทดสอบหน่วยที่กำหนด (ใช้ ecomdev_unittest) ที่ทดสอบการทำงานหลัก? (ฉันรู้ว่า MTAF ทำสิ่งนี้ แต่มีการทดสอบหน่วยที่กำหนดไว้ล่วงหน้าหรือไม่?)
ProxiBlue

1
@ProxiBlue ไม่ไม่มีสิ่งใดที่ฉันรู้ อย่างไรก็ตามเป็นความคิดที่ดีสำหรับโครงการชุมชน
ไทยพาน

2

สำหรับการทดสอบหน่วย EcomDev PHPUnit นั้นดีที่สุด

คุณอาจต้องการลองทดสอบการกดปุ่มบนวีโอไอพีหรือไม่? ตัวอย่างด้วย casperjs: https://github.com/jacquesbh/hackathon-casperjs/


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