Maven - Làm thế nào để biên dịch các bài kiểm tra mà không cần chạy chúng?


128

Có cách nào trong Maven để biên dịch các bài kiểm tra mà không cần chạy chúng không? Tôi muốn sử dụng IDE để chạy các thử nghiệm cụ thể và không phải tất cả chúng.


8
Bạn có thể nên chỉnh sửa câu hỏi hoặc thay đổi câu trả lời được chấp nhận.
Chiranjib

Câu trả lời:


29

bạn có thể thử sử dụng tham số -DskipTests

Người giới thiệu:


Trong netbeans, đó là những gì tôi đã làm. Tôi thấy sau mvn -Dmaven.test.skip = -Dnetbeans.execution đúng = true sạch cài đặt sau đó tôi nhìn thấy những điều sau
user373201

[trình biên dịch: testCompile] Không biên dịch các nguồn kiểm tra [Surefire: test] Các bài kiểm tra bị bỏ qua. Atleast sử dụng netbeans trông giống như nếu các bài kiểm tra bị bỏ qua, nó không biên dịch các nguồn kiểm tra
user373201

1
đừng bận tâm, mặc dù các bản ghi nói rằng, nó dường như vẫn biên dịch các tệp kiểm tra.
dùng373201

34
điều này dẫn đến bỏ qua các bài kiểm tra hoàn toàn: thực thi cũng như biên dịch, xem câu trả lời đúng dưới đây: biên dịch thử. Tôi sử dụng nó với biên dịch thử biên dịch sạch mvn trong Eclipse
Yashima

3
@Yashima bạn nói đúng, cái gạt này không thông minh lắm ... xin vui lòng chấp nhận câu trả lời dưới đây, vì vậy a có thể xóa cái này
đây

334

Làm thế nào về test-compilegiai đoạn vòng đời? Nó không yêu cầu bất kỳ bỏ qua thử nghiệm, bởi vì nó xảy ra trước testgiai đoạn. I E,

$ mvn test-compile

Và thực hiện.

Giới thiệu về Vòng đời Xây dựng giải thích thêm.


7
Đây chính xác là những gì tôi cần, cảm ơn. Tôi không biết về người hỏi ban đầu; nhưng tôi đang tìm cách biên dịch các bài kiểm tra, sau đó chạy chúng với một trình chạy thử riêng biệt.
Mike Miller

30

Để chỉ biên dịch các bài kiểm tra và mã, mà không chạy chúng, chỉ cần làm:

mvn test-compile

7
Tôi nghĩ rằng trình biên dịch thử nghiệm bao gồm biên dịch
Whimusical

đồng ý với @Whimusical. Hơn nữa, điều này sẽ chạy mục tiêu biên dịch 2 lần.
Gabriel Petrovay

26

Khi thực hiện mục tiêu sẽ bao gồm giai đoạn thử nghiệm (chẳng hạn như gói), bạn có thể thực hiện hai điều:

  • Sử dụng lệnh mvn -DskipTests=true package. Điều này sẽ biên dịch tất cả các bài kiểm tra nhưng không chạy chúng.
  • Hoặc mvn -Dmaven.test.skip=true package. Điều này sẽ không biên dịch hoặc chạy nhánh thử nghiệm.

3

Ngoài ra, bạn có thể sử dụng maven.test.skip.exectùy chọn.

mvn -Dmaven.test.skip.exec=true

Maven sẽ biên dịch các bài kiểm tra mà không cần chạy chúng. Tôi sử dụng tùy chọn này trong tất cả các dự án của tôi thường xuyên.



0

Nếu bạn cài đặt tập tin, bạn cũng có thể sử dụng

<maven.test.skip>true</maven.test.skip>

5
Bạn không bao giờ nên làm điều đó. Nếu bạn cần nó, đặt nó trên dòng lệnh, nhưng không bao giờ vĩnh viễn.
Sean Patrick Floyd

13
Không bao giờ nói bạn nên hoặc không nên làm điều đó. Chỉ cần cung cấp kiến ​​thức của các tùy chọn.
menapole

4
Điều này khiến maven không biên dịch các bài kiểm tra.
Mike Miller

3
@Sean Patrick Floyd: tại sao không? điều này KHÔNG phải là vĩnh viễn, mà sẽ là đặt nó trong tệp pom.xml.
Balázs Németh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.