บริบท
โดยพื้นฐานแล้ว ฉันมีไลบรารีที่ใช้ในหลายแอปพลิเคชันที่ทำงานบน java 6, java 7 และตอนนี้ java 8
ห้องสมุดยังต้องพึ่งพาห้องสมุดบุคคลที่สามที่น่าขนลุก (แต่มีประโยชน์มาก) (ซึ่งฉันจะไม่ตั้งชื่อ) - ห้องสมุดที่ไม่สนใจมากนักเกี่ยวกับความเข้ากันได้ของการส่งต่อ แอปพลิเคชันดังกล่าวยังใช้งานไลบรารีบุคคลที่สามนี้อย่างหนัก แต่ไม่สามารถอัปเดตเป็นเวอร์ชันล่าสุดได้เสมอไป ฉันคุ้นเคยกับมันแล้ว ดังนั้นฉันจึงมี "ถ้า" มากมายในโค้ดของฉันที่เกี่ยวข้องกับเรื่องไร้สาระ
ปัญหา
วันนี้ฉันพบกับปัญหาที่น่ารำคาญ: วิธีการบางอย่างในไลบรารีของบุคคลที่สามมีพฤติกรรมที่แตกต่างออกไปเมื่อทำงานใน java 7 และก่อนหน้าเมื่อทำงานใน java 8 และใหม่กว่า
การทดสอบหน่วยของฉันได้รับการออกแบบให้ครอบคลุมส่วนนี้ของโค้ดของฉัน และคงจะตรวจพบจุดบกพร่องหากเรียกใช้โดยใช้ชุดค่าผสมของ Java / Library ที่ถูกต้อง
คำถามที่ 1
ฉันจะบูรณาการอย่างดีในวงจรชีวิตการสร้าง maven และรันการทดสอบตามลำดับกับ java 6, java 7 และ java 8 ได้อย่างไร (ซึ่งหมายถึงความล้มเหลวหากการทดสอบใด ๆ ล้มเหลวด้วย jvm ใด ๆ )
คำถามที่ 2
เช่นเดียวกับข้างต้น แต่เพิ่มการรันตามลำดับอีกครั้งกับไลบรารีบุคคลที่สามแต่ละเวอร์ชันที่ "รองรับ"
(ซึ่งหมายถึงให้ชัดเจนว่าถ้าฉัน "สนับสนุน" เวอร์ชัน 6.11, 6.12, 6.13 และ 6.14 ของ lib นี้ด้วย java ทั้ง 3 เวอร์ชัน ฉันจะรัน 4*3=12 เท่าของการทดสอบหน่วยของฉัน)
release:prepare
ประสบความสำเร็จบน lib ที่ไม่ได้รับการตรวจสอบอย่างสมบูรณ์กับเมทริกซ์ทดสอบ - person Cerber   schedule 19.12.2014