2009-07-13 32 views
8

Dường như khi tôi thực hiện "di chuyển" thì tất cả các kiểm tra junit của tôi đều nằm ở vị trí cũ của nó. Thường thì tôi kiểm tra các lớp có thể nhìn thấy "gói", vì vậy chúng trở nên vô hình, nếu SUT chuyển sang gói khác.Intellij Idea "Di chuyển tái cấu trúc" với các thử nghiệm của Junit

Bạn có di chuyển thử nghiệm bằng tay không?

+0

Tôi e rằng mình không thể hiểu câu hỏi của bạn. Bạn có thể vui lòng cung cấp thêm một số thông tin? Điều đó có thể giúp trả lời câu hỏi này (+1 để bạn có thể nhận xét) – guerda

+0

giả sử tôi có lớp AAA trong gói xxx. Điểm đến của lớp là src/xxx/AAA.java và giả sử tôi có một bài kiểm tra nằm ở test/xxx/AAATest.java Vì vậy, khi tôi chuyển lớp AAA sang gói yyy, kiểm tra của tôi ở gói xxx. – dmitrynikolaev

Trả lời

2

tôi có 4 lựa chọn cho bạn:!.

  1. vào phần "trọn gói" xem ở bên trái, chọn cả hai tập tin, và sau đó nhấn F6 Nó shoul d di chuyển cả hai đến đúng nơi.

  2. Tạm thời đặt lớp học thành công, trước khi bạn thực hiện công việc tái cấu trúc của mình và quay lại sau đó.

  3. Thử di chuyển thử nghiệm trước. Tôi có vẻ nhớ rằng tránh phá vỡ bất kỳ sự phụ thuộc nào.

  4. Có một plugin (tôi nghĩ rằng đó là toggleTest hoặc unitTest - Tôi đã cài đặt cả hai) bản vá Move Refactor cũng mang thử nghiệm với nó. Làm việc tuyệt vời. Rất tiếc, có vẻ như chúng không hoạt động với IDEA mới nhất.

0

Hành vi bạn mô tả là hoàn toàn bình thường.

src/package1/A.java 
test/package1/ATest.java 

Trong ATest.javaimport package1.A;.
Sau refactored của bạn, nó trông như thế này: Mã

src/package2/A.java 
test/package1/ATest.java 

Bài kiểm tra ở nơi ông. Bạn đã không di chuyển mã thử nghiệm, nhưng mã nguồn của bạn. Nó không ảnh hưởng đến bất kỳ thư mục nào khác (như trong ví dụ của bạn).
Tham chiếu trong ATest.java hiện phải là import package2.A;. Nếu không, việc tái cấu trúc đã sai.

Không tháng, các thử nghiệm của bạn sẽ hoạt động, ngay cả khi chúng nằm trong một thư mục khác. Đó là vì quá trình nhập đã được thay đổi bằng phương pháp tái cấu trúc.

Nếu bạn muốn dọn dẹp cấu trúc thư mục của bạn, bạn phải tự đổi tên gói test/package1-test/package2 (Tôi biết, gói là package1package2 nhưng tôi muốn để tăng cường sự tập trung vào cấu trúc thư mục.

tôi hy vọng tôi có thể giúp bạn

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