Thử nghiệm trong Maven

Một điểm quan trọng khác trong công việc của Maven là giai đoạn thử nghiệm. Nó sẽ được thực thi nếu bạn chạy test , package , verify hoặc bất kỳ giai đoạn nào khác sau chúng.

Theo mặc định, Maven sẽ chạy tất cả các thử nghiệm trong thư mục src/test/java/ . Để phân biệt các bài kiểm tra được chạy với các tệp java khác, một quy ước đặt tên đã được thông qua. Các bài kiểm tra là các lớp java có tên bắt đầu bằng "Test" và kết thúc bằng "Test" hoặc "TestCase" .

Mô hình chung của tên thử nghiệm:

  • **/Kiểm tra*.java
  • **/*Test.java
  • **/*TestCase.java

Các bài kiểm tra này phải được viết dựa trên khung kiểm tra Junit hoặc TestNG. Đây là những khuôn khổ rất thú vị, chúng tôi chắc chắn sẽ nói về chúng sau.

Kết quả kiểm tra ở dạng báo cáo ở định dạng .txt và .xml được lưu trong thư mục ${basedir}/target/surefire-reports.

thiết lập thử nghiệm

Thường có rất nhiều tùy chọn để chạy thử nghiệm, vì vậy các nhà phát triển Maven đã tạo một plugin đặc biệt, trong các tham số mà bạn có thể đặt tất cả thông tin chi tiết về thử nghiệm. Plugin có tên là Maven Surefire Plugin và có sẵn tại .

<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>

Trong ví dụ này, chúng tôi đã nói với plugin rằng nó cần chạy một lớp thử nghiệm duy nhất, Sample.java.

Làm thế nào để nhanh chóng loại bỏ các bài kiểm tra bị hỏng

Để chạy thử nghiệm dự án, bạn cần chạy lệnh mvn test. Nhưng thường xuyên hơn, cần phải loại trừ một số thử nghiệm khỏi thử nghiệm. Ví dụ: chúng có thể bị hỏng, mất quá nhiều thời gian để chạy hoặc vì bất kỳ lý do nào khác.

Đầu tiên, bạn chỉ cần yêu cầu Maven bỏ qua các bài kiểm tra khi thực hiện giai đoạn xây dựng. Ví dụ:

mvn clean package -Dmaven.test.skip=true

Thứ hai, trong cấu hình plugin, bạn có thể vô hiệu hóa việc thực hiện các bài kiểm tra:


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

Và thứ ba, các bài kiểm tra có thể được loại trừ bằng cách sử dụng thẻ <exclude> . Ví dụ:


<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>