2010-09-24 30 views

Trả lời

21

Điều gì về việc nhấp chuột phải vào mục tiêu của bạn và "Gỡ lỗi [mục tiêu của bạn]" (trong trường hợp của bạn là mục tiêu kiểm tra)?

debug goal

+0

Ahh không nghĩ về điều đó. Quá muộn vào chiều thứ sáu: D Cảm ơn. – JavaRocky

+12

Giả sử bạn muốn sử dụng điểm ngắt, câu trả lời này không đủ. Xem Câu trả lời của Hover để thay thế. – dgtc

20

tôi thực hiện thử nghiệm với các tùy chọn sau:

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test 

... và sau đó kết nối với Maven với gỡ lỗi từ xa.

+0

Bạn đã quản lý để log4j/ghi nhật ký hoạt động chưa? Tôi thậm chí còn bao gồm cả -Dlog4j.configuration = nhưng các câu lệnh logging không được in. – javadba

131

http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

Trong IDEA, chạy thử nghiệm của bạn trong chế độ gỡ lỗi "mvn -DforkMode=never test"

Cập nhật: Mở cấu hình chạy/debug của bạn, trong "Runner" tab, thêm -DforkMode=never

enter image description here

(Được chú ý bởi @ mikeapr4: phiên bản mới hơn của plugin chắc chắn (2.14+) sử dụng mvn -DforkCount=0 test)

+0

Điều đó làm việc cho tôi. Tôi đang sử dụng lệnh sau đây để gỡ lỗi mục tiêu thử nghiệm trong ý tưởng 10. –

+1

Trong dự án đa mô-đun của tôi, đây là lựa chọn duy nhất làm việc cho tôi từ bên trong Intellij. – nash

+22

Với IDEA 11, tôi đã tìm thấy trong các dự án Maven, tôi phải nhấp chuột phải vào bài kiểm tra cho mô-đun mà tôi muốn kiểm tra. Điều này tạo ra một cấu hình chạy/gỡ lỗi. Sau đó chỉnh sửa cấu hình mới này, nhấp vào tab runner và thêm -DforkMode = không bao giờ trong tùy chọn VM. Nhấp vào ok. Đặt điểm ngắt, sau đó nhấp vào biểu tượng gỡ lỗi để chạy cấu hình gỡ lỗi mới.Một sự kết hợp của các bên trên, vì vậy cảm ơn cho những lời khuyên. – foolshat

7

Câu hỏi đã được trả lời. Nhưng chỉ để chia sẻ kinh nghiệm của riêng tôi. Câu trả lời đã chọn không giải quyết được sự cố của tôi. Mã của tôi có nhiều mô-đun.

câu trả lời của foolshat đã mang lại cái nhìn sâu sắc có giá trị cho vấn đề của tôi.

Tôi có hai giải pháp, 1. Sử dụng IDEA của bạn, bằng cách thêm tùy chọn VM-DforkMode=never; Phải chạy nó với chế độ gỡ lỗi. 2. Thiết lập gỡ lỗi từ xa, chỉ định socket và trong trường hợp này forkMode là không cần thiết.

Đây chỉ là bản tóm tắt cho những gì tôi đã trải qua.

+0

Cảm ơn bạn rất nhiều! – tsykora

8

-DforkMode=never không hoạt động nữa, hiện không được dùng nữa trong SureFire.

Sử dụng -DforkCount=0 thay vào đó khi sử dụng plugin chắc chắn 2.14+.

+2

Điều đó có hiệu quả, nhưng câu trả lời này chắc chắn là khó hiểu. –

+0

Tài liệu chắc chắn nói để sử dụng 'forkCount' và' reuseForks' thay vào đó, vì vậy tôi nghĩ rằng ở trên có nghĩa là để nói, "Sử dụng' -DforkCount = 0' để thay thế. " Tôi đã thử '-DforkCount = 0' (' reuseForks' không quan trọng nếu không có nhánh), nhưng điểm ngắt của tôi không bao giờ bị vấp. Nó thực hiện chuyến đi với '-DforkMode = never' (Maven 3.2.1, IDEA 13.1.2). – mmindenhall

Các vấn đề liên quan