Tôi tìm thấy cách đơn giản nhất để bỏ qua các thử nghiệm chắc chắn là cấu hình Surefire ( nhưng không phải là failafe ) như sau:
<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>
Điều này cho phép bạn chạy mvn verify -Dskip.surefire.testsvà chỉ chắc chắn, không phải là không an toàn, các bài kiểm tra sẽ bị bỏ qua; nó cũng sẽ chạy tất cả các giai đoạn cần thiết khác bao gồm tiền tích hợp và hậu tích hợp, và cũng sẽ chạy verifymục tiêu cần thiết để thực sự thất bại trong việc xây dựng maven của bạn nếu thử nghiệm tích hợp của bạn thất bại.
Lưu ý rằng điều này xác định lại thuộc tính được sử dụng để chỉ định rằng các thử nghiệm nên được bỏ qua, vì vậy nếu bạn cung cấp chính tắc -DskipTests=true, chắc chắn sẽ bỏ qua nó nhưng failafe sẽ tôn trọng nó, điều này có thể bất ngờ, đặc biệt là nếu bạn đã có các bản dựng / người dùng hiện có chỉ định cờ đó. Một cách giải quyết đơn giản dường như được mặc định skip.surefire.testslà giá trị skipTeststrong <properties>phần pom của bạn:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
Nếu bạn cần, bạn có thể cung cấp một tham số skip.failsafe.testsan toàn được gọi là failafe, tuy nhiên tôi không thấy cần thiết - vì các thử nghiệm đơn vị thường chạy trong giai đoạn trước và nếu tôi muốn chạy thử nghiệm đơn vị nhưng không chạy thử nghiệm tích hợp, tôi sẽ chạy các testgiai đoạn thay vì verifygiai đoạn. Kinh nghiệm của bạn có thể thay đổi!
Các skip.(surefire|failsafe).teststhuộc tính này có lẽ nên được tích hợp vào chính mã chắc chắn / failafe, nhưng tôi không chắc nó sẽ vi phạm đến mức nào "chúng chính xác là cùng một plugin ngoại trừ các khác biệt nhỏ nhất".
maven.test.skiphayskipTestschưa?