อะไรคือความแตกต่างระหว่างปลั๊กอิน Maven Surefire และ Maven Failsafe


คำตอบ:


141

ในคำง่ายๆที่ Failsafe ปลั๊กอินถูกออกแบบมาเพื่อเรียกใช้การทดสอบการรวมในขณะที่ Surefire เพื่อเรียกใช้การทดสอบหน่วย

มีคำอธิบายเพิ่มเติมในคำถามที่พบบ่อยของ Maven :

  • maven-surefire-pluginได้รับการออกแบบมาสำหรับการเรียกใช้การทดสอบหน่วยและหากการทดสอบใด ๆ ล้มเหลวการสร้างจะล้มเหลวทันที

  • maven-failsafe-pluginได้รับการออกแบบมาสำหรับการเรียกใช้การทดสอบการรวมและแยกการสร้างความล้มเหลวหากมีข้อผิดพลาดในการทดสอบจากการเรียกใช้การทดสอบจริง

    ชื่อ " failafe " ถูกเลือกเนื่องจากเป็นคำพ้องความหมายของ surefire และเนื่องจากมีความหมายว่าเมื่อล้มเหลวจึงทำเช่นนั้นด้วยวิธีที่ปลอดภัย

    Failsafe ปลั๊กอินมีสองเป้าหมาย:

    • failsafe:integration-test เรียกใช้การทดสอบการรวมแอปพลิเคชัน
    • failsafe:verify ตรวจสอบว่าผ่านการทดสอบการรวมแอปพลิเคชันแล้ว

ดูสิ่งนี้ด้วย:


4
คำถามที่น่าสนใจคือทำไม เครื่องมือสร้างจำนวนมากทำงานได้อย่างสมบูรณ์โดยไม่ต้องสร้างเนื้อหาที่ค่อนข้างเทียมและมีความแตกต่างอย่าง จำกัด การกำหนดค่าปลั๊กอินทั้งสองเข้าด้วยกันและการดูดซับรายงานในรูปแบบที่สอดคล้องกันนั้นค่อนข้างเป็น PITA
Raphael

และไม่ความแตกต่างที่ระบุไว้ในคำตอบอื่น ๆ ไม่ได้ให้เหตุผลเพียงพอสำหรับการมีเครื่องมือหลายตัวสำหรับสิ่งที่ควรเป็นตัวกรองและแฟล็ก
Raphael

27

จากhttps://maven.apache.org/surefire/maven-failsafe-plugin/ฉันจะบอกว่าความแตกต่างระหว่าง Surefire และ Failsafe คือวิธีที่พวกเขาล้มเหลว:

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

ปลั๊กอิน Failsafe ใช้ในระหว่างการทดสอบการรวมและตรวจสอบขั้นตอนของวงจรการสร้างเพื่อดำเนินการทดสอบการรวมแอปพลิเคชัน ปลั๊กอิน Failsafe จะไม่สร้างความล้มเหลวในระหว่างขั้นตอนการทดสอบการรวมดังนั้นจึงทำให้สามารถดำเนินการขั้นตอนการทดสอบหลังการรวมระบบได้


2
จากนั้นคำถามจะกลายเป็น: ทำไมต้องใช้ Surefire ถ้าพวกเขาบอกเราว่ามันสามารถทิ้งของไว้ในสถานะที่ไม่ถูกต้อง?
user118967

6

ในประเทศของฉันเป็นผลการค้นหาที่สองของ Google เมื่อค้นหา "maven failafe maven surefire" เพื่อไปที่คำถามที่พบบ่อยนี้: ความแตกต่างระหว่าง maven-failafe-plugin และ maven-surefire-pluginซึ่งระบุว่า:

maven-surefire-plugin ได้รับการออกแบบมาสำหรับการรันการทดสอบหน่วยและหากการทดสอบใด ๆ ล้มเหลวการสร้างจะล้มเหลวทันที

maven-failafe-plugin ได้รับการออกแบบมาสำหรับการรันการทดสอบการรวมและแยกการสร้างความล้มเหลวหากมีการทดสอบล้มเหลวจากการเรียกใช้การทดสอบจริง "

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