2011-07-01 32 views
6

Tôi đang làm việc với một dự án Maven đa tạo tác, nơi các hiện vật trong dự án có một vài sự phụ thuộc vào nhau. Tôi đang sử dụng IntelliJ 9. Tôi muốn có thể thiết lập các điểm ngắt trong các bài kiểm tra đơn vị của mình, nhưng khi tôi nhấp chuột phải vào thư mục kiểm tra đơn vị cho phần tạo tác của tôi và chọn "Debug 'All Tests'", tôi nhận được một Class không tìm thấy ngoại lệ đề cập đến một lớp trong một tạo phẩm Maven riêng biệt.Làm cách nào để chạy trình gỡ rối IntelliJ trên các bài kiểm tra đơn vị trong dự án Maven?

Tôi có thể chạy mục tiêu "thử nghiệm" của Maven trên tạo phẩm gốc và nó hoạt động tốt.

Bất kỳ ý tưởng nào? Cảm ơn.

Trả lời

1

Tôi muốn chạy thử nghiệm đơn vị cho một gói cụ thể.

Tôi có thể làm việc này bằng cách tạo cấu hình chạy/gỡ lỗi JUnit mới trong IntelliJ. Tôi đã nói với nó để chạy các thử nghiệm trong gói cụ thể và cho "Sử dụng classpath và JDK của module", tôi đã chọn tạo phẩm Maven gốc.

9

Khi bạn chạy Maven từ dòng lệnh, bạn sẽ có thể chạy nó với trình gỡ lỗi được bật và chỉ đính kèm ý tưởng làm trình gỡ lỗi từ xa. Đó là cách tôi thường sử dụng nó.

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

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

này sẽ cho phép kết nối debugger để cổng 8000 và chờ đợi cho bạn để đính kèm trước khi thực hiện.

+0

Cảm ơn các mẹo. Tôi đã có thể làm cho nó hoạt động bằng cách tinh chỉnh cấu hình chạy/gỡ lỗi JUnit trong IntelliJ. –

+0

Tôi nghĩ rằng điều này sẽ không hiệu quả với tôi vì tôi chỉ muốn chạy thử nghiệm đơn vị cho một gói cụ thể ... Tôi phải chạy thử nghiệm mvn trên root POM để chạy tất cả các bài kiểm tra đơn vị –

+0

Bạn có thể luôn sử dụng -Dest nhất như được mô tả ở đây. Nhưng nếu bạn giải quyết nó trong ý tưởng - tuyệt vời! –

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