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.tests
và 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 verify
mụ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.tests
là giá trị skipTests
trong <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.tests
an 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 test
giai đoạn thay vì verify
giai đoạn. Kinh nghiệm của bạn có thể thay đổi!
Các skip.(surefire|failsafe).tests
thuộ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.skip
hayskipTests
chưa?