Tôi hiện đang tái sử dụng các bài kiểm tra JUnit 4 từ một dự án khác chống lại mã của tôi. Tôi lấy chúng trực tiếp từ kho lưu trữ của dự án khác như là một phần của bản dựng Ant tự động của tôi. Điều này là tuyệt vời, vì nó đảm bảo tôi giữ mã màu xanh lá cây của tôi chống lại phiên bản mới nhất của các bài kiểm tra.Loại trừ các phương thức JUnit Test riêng lẻ mà không sửa đổi lớp Test?
Tuy nhiên, có một tập hợp con các bài kiểm tra mà tôi không bao giờ mong đợi để chuyển vào mã của mình. Nhưng nếu tôi bắt đầu thêm chú thích @Ignore vào các bài kiểm tra đó, tôi sẽ phải duy trì bản sao riêng của mình về việc thực hiện kiểm tra, mà tôi thực sự không muốn làm.
Có cách nào để loại trừ các thử nghiệm riêng lẻ mà không sửa đổi nguồn Kiểm tra không? Dưới đây là những gì tôi đã xem xét cho đến nay:
Theo như tôi thấy, nhiệm vụ Ant JUnit chỉ cho phép bạn loại trừ toàn bộ các lớp học thử nghiệm, chứ không phải phương pháp thử nghiệm cá nhân - vì vậy đó là không tốt đối với tôi, tôi cần phương thức chi tiết.
Tôi cân nhắc đặt cùng một TestSuite sử dụng phản chiếu để tìm và thêm tất cả các thử nghiệm ban đầu, sau đó thêm mã để loại bỏ rõ ràng các thử nghiệm mà tôi không muốn chạy. Nhưng tôi đã bỏ ý tưởng đó khi tôi nhận thấy rằng TestSuite API không cung cấp một phương pháp để loại bỏ các thử nghiệm.
Tôi có thể tạo các lớp thử nghiệm của riêng mình mở rộng các lớp Bài kiểm tra ban đầu, ghi đè các bài kiểm tra cụ thể mà tôi không muốn chạy và chú thích chúng bằng @Ignore. Sau đó tôi chạy JUnit trên các lớp con của mình. Nhược điểm ở đây là nếu các lớp Test mới được thêm vào dự án ban đầu, tôi sẽ không tự động chọn chúng. Tôi sẽ phải theo dõi các lớp Test mới khi chúng được thêm vào dự án gốc. Đây là lựa chọn tốt nhất của tôi cho đến nay, nhưng không cảm thấy lý tưởng.
Tùy chọn duy nhất khác mà tôi có thể nghĩ là chạy thử nghiệm kém và bỏ qua các lỗi. Tuy nhiên, các thử nghiệm này mất một thời gian để chạy (và thất bại!) Vì vậy tôi không muốn chạy chúng cả. Ngoài ra, tôi không thể thấy một cách để nói với nhiệm vụ Ant bỏ qua các lỗi trên các phương thức thử nghiệm cụ thể (một lần nữa - tôi thấy cách bạn có thể thực hiện nó cho các lớp Test riêng lẻ, nhưng không phải là các phương thức).
Không, rất tiếc, tôi cần phải loại trừ các phương pháp thử nghiệm cụ thể. Đó là, tôi muốn chạy một số bài kiểm tra trong một lớp học thử nghiệm nhất định nhưng không phải những bài kiểm tra khác. – rewbs