ฉันพบวิธีที่ง่ายที่สุดในการข้ามการทดสอบ Surefire เท่านั้นคือการกำหนดค่า Surefire ( แต่ไม่ล้มเหลว ) ดังนี้:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<!-- skips surefire tests without skipping failsafe tests.
Property value seems to magically default to false -->
<skipTests>${skip.surefire.tests}</skipTests>
</configuration>
</plugin>
สิ่งนี้ช่วยให้คุณสามารถเรียกใช้mvn verify -Dskip.surefire.tests
และไม่รับประกันว่าปลอดภัยไม่สามารถทำการทดสอบได้ นอกจากนี้ยังจะดำเนินการตามขั้นตอนที่จำเป็นอื่น ๆ ทั้งหมดรวมถึงการรวมระบบล่วงหน้าและหลังการรวมระบบและจะทำงานตามverify
เป้าหมายที่จำเป็นในการสร้าง maven ที่ล้มเหลวหากการทดสอบการรวมระบบของคุณล้มเหลว
โปรดทราบว่านี่จะนิยามคุณสมบัติที่ใช้ในการระบุว่าการทดสอบควรถูกข้ามดังนั้นหากคุณกำหนดค่าตามมาตรฐาน-DskipTests=true
canon, surefire จะไม่สนใจ แต่จะไม่ปลอดภัยตามที่คาดไว้โดยเฉพาะอย่างยิ่งถ้าคุณมีบิลด์ / ผู้ใช้ที่มีอยู่แล้ว วิธีแก้ปัญหาง่าย ๆ น่าจะเป็นค่าเริ่มต้นskip.surefire.tests
ของค่าskipTests
ใน<properties>
ส่วนของ pom ของคุณ:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
หากคุณต้องการคุณสามารถระบุพารามิเตอร์แบบอะนาล็อกที่เรียกว่าskip.failsafe.tests
failafe ได้ แต่ฉันไม่พบว่าจำเป็น - เพราะการทดสอบหน่วยมักจะทำงานในระยะก่อนหน้านี้และถ้าฉันต้องการเรียกใช้การทดสอบแบบหน่วย แต่ไม่รวมการทดสอบฉันจะเรียกใช้test
เฟสแทนของverify
เฟส ประสบการณ์ของคุณอาจแตกต่างกันไป!
skip.(surefire|failsafe).tests
คุณสมบัติเหล่านี้น่าจะรวมอยู่ในโค้ด surefire / failafe เอง แต่ฉันไม่แน่ใจว่ามันจะละเมิดมากแค่ไหน "พวกเขาเป็นปลั๊กอินเดียวกันทั้งหมดยกเว้นความแตกต่างเล็ก ๆ 1"
maven.test.skip
หรือskipTests
?