การทดสอบใน 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>