Tôi có một lớp, mà tôi sử dụng làm cơ sở cho các bài kiểm tra đơn vị của mình. Trong lớp này, tôi khởi tạo toàn bộ môi trường cho các bài kiểm tra của tôi, thiết lập ánh xạ cơ sở dữ liệu, nhập một số bản ghi cơ sở dữ liệu trên nhiều bảng, vv Lớp đó có phương thức với chú thích @BeforeClass thực hiện khởi tạo. Tiếp theo, tôi mở rộng lớp đó với các lớp cụ thể mà tôi có các phương thức @Test.THÁNG SÁU: chỉ chạy thiết lập một lần cho một số lượng lớn các lớp kiểm tra
Câu hỏi của tôi là vì lớp trước hoàn toàn giống nhau đối với tất cả các lớp kiểm tra này, làm cách nào để đảm bảo rằng chúng chỉ chạy một lần cho tất cả các bài kiểm tra. Một giải pháp đơn giản là tôi có thể giữ tất cả các bài kiểm tra trong một lớp. Tuy nhiên, số lượng các bài kiểm tra là rất lớn, chúng cũng được phân loại dựa trên các đầu chức năng. Vì vậy, chúng được đặt trong các lớp khác nhau. Tuy nhiên, vì chúng cần thiết lập chính xác, chúng kế thừa @BeforeClass. Kết quả là toàn bộ thiết lập được thực hiện ít nhất một lần cho mỗi lớp thử nghiệm, chiếm nhiều thời gian hơn tổng số mà tôi muốn.
Mặc dù vậy, tôi có thể đặt tất cả các gói con dưới một gói, vì vậy nếu có cách, tôi có thể chạy thiết lập một lần cho tất cả các thử nghiệm trong gói đó, nó sẽ rất tuyệt.
Bạn đã xem xét một cái gì đó như thế này: http://stackoverflow.com/questions/6580670/testsuite-setup-in-junit-4 – efan
Giới hạn đã biết. Bởi vì các vấn đề như vậy cá nhân tôi thích [testng] (http://testng.org/doc/documentation-main.html) khuôn khổ. –
@ G.Demecki bạn đề cập đến khuôn khổ testNG - tại sao bạn không tạo ra một câu trả lời với cách TestNG để làm điều này cho bất cứ ai có thể tự hỏi? Câu hỏi tràn ngăn xếp tương tự cho TestNG này dường như không tồn tại. –