การทดสอบใน Maven

อีกจุดสำคัญในการทำงานของ Maven คือขั้นตอนการทดสอบ มันจะถูกดำเนินการหากคุณเรียกใช้test , package , verifyหรือขั้นตอนอื่น ๆ ที่ตามมาหลังจากนั้น

ตามค่าเริ่มต้น Maven จะเรียกใช้การ ทดสอบทั้งหมดที่อยู่ใน โฟลเดอร์ src/test/java/ เพื่อแยกแยะการทดสอบที่จะเรียกใช้จากไฟล์จาวาอื่น หลักการตั้งชื่อได้ถูกนำมาใช้ การทดสอบคือคลาสจาวาที่มีชื่อขึ้นต้น ด้วย"Test" และลงท้ายด้วย"Test"หรือ"TestCase"

รูปแบบทั่วไปของชื่อการทดสอบ:

  • **/ทดสอบ*.java
  • **/*Test.java
  • **/*TestCase.java

การทดสอบเหล่านี้ต้องเขียนตาม กรอบการทดสอบ Junitหรือ TestNG นี่เป็นเฟรมเวิร์กที่ยอดเยี่ยมมาก เราจะพูดถึงมันในภายหลัง

ผลการทดสอบในรูปแบบของรายงานในรูปแบบ .txt และ .xml จะถูกบันทึกไว้ในไดเร็กทอรี ${baseir}/target/surefire-reports

ทดสอบการตั้งค่า

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

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<includes>
                <include>Sample.java</include>
        	</includes>
    	</configuration>
	</plugin>
</plugins>

ในตัวอย่าง เราบอกปลั๊กอินว่าจำเป็นต้องเรียกใช้คลาสทดสอบเดียว, Example.java

วิธีกำจัดการทดสอบที่เสียหายอย่างรวดเร็ว

ในการเรียกใช้โปรเจ็กต์สำหรับการทดสอบ คุณต้องรันคำสั่งทดสอบ mvn แต่บ่อยครั้งที่มีความจำเป็นต้องแยกการทดสอบบางอย่างออกจากการทดสอบ ตัวอย่างเช่น อาจเสีย ใช้เวลาวิ่งนานเกินไป หรือด้วยเหตุผลอื่นใด

ขั้นแรก คุณสามารถบอก Maven ให้ข้ามการทดสอบเมื่อทำขั้นตอนการสร้าง ตัวอย่าง:

mvn clean package -Dmaven.test.skip=true

ประการที่สอง ในการกำหนดค่าปลั๊กอิน คุณสามารถปิดใช้งานการดำเนินการทดสอบได้:


<configuration>
    <skipTests>true</skipTests>
</configuration>

และประการที่สาม สามารถยกเว้นการทดสอบได้โดยใช้แท็ ก <exclude> ตัวอย่าง:


<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<excludes>
           	<exclude>**/TestFirst.java</exclude>
	           <exclude>**/TestSecond.java</exclude>
    	</excludes>
    	</configuration>
    </plugin>
</plugins>