Sự khác biệt giữa các plugin Maven Surefire và Maven Failsafe là gì?


Câu trả lời:


140

Nói một cách dễ hiểu, plugin Failsafe được thiết kế để chạy các bài kiểm tra tích hợp trong khi Surefire để chạy các bài kiểm tra đơn vị .

Điều này được giải thích thêm trong Câu hỏi thường gặp về Maven :

  • maven-surefire-pluginđược thiết kế để chạy các bài kiểm tra đơn vị và nếu bất kỳ bài kiểm tra nào không thành công thì nó sẽ không xây dựng được ngay lập tức.

  • maven-failsafe-pluginđược thiết kế để chạy các bài kiểm tra tích hợp và tách lỗi xây dựng nếu có lỗi kiểm tra từ việc thực sự chạy các bài kiểm tra.

    Tên " failsafe " được chọn vì nó là từ đồng nghĩa của chắc chắn và vì nó ngụ ý rằng khi nó thất bại, nó sẽ làm như vậy một cách an toàn.

    Các Failsafe Plugin có hai mục tiêu:

    • failsafe:integration-test chạy các bài kiểm tra tích hợp của một ứng dụng,
    • failsafe:verify xác minh rằng các bài kiểm tra tích hợp của một ứng dụng đã vượt qua.

Xem thêm:


4
Câu hỏi thú vị là tại sao . Nhiều công cụ xây dựng hoạt động hoàn hảo mà không tạo ra sự khác biệt được cho là khá giả tạo và hạn chế này. Định cấu hình cả hai plugin cùng nhau và hấp thụ các báo cáo của chúng theo những cách nhất quán là một PITA.
Raphael

Và không, sự khác biệt được nêu trong các câu trả lời khác không cung cấp đủ lý do để có nhiều công cụ cho những gì nên là bộ lọc và cờ.
Raphael

27

Từ https://maven.apache.org/surefire/maven-failsafe-plugin/ , tôi muốn nói rằng sự khác biệt giữa Surefire và Failsafe là cách chúng thất bại:

Nếu bạn sử dụng Plugin Surefire để chạy thử nghiệm, thì khi bạn gặp lỗi thử nghiệm, quá trình xây dựng sẽ dừng lại ở giai đoạn tích hợp-thử nghiệm và môi trường thử nghiệm tích hợp của bạn sẽ không được chia nhỏ một cách chính xác.

Plugin Failsafe được sử dụng trong giai đoạn kiểm tra tích hợp và xác minh của vòng đời xây dựng để thực hiện các kiểm tra tích hợp của một ứng dụng. Plugin Failsafe sẽ không bị lỗi khi xây dựng trong giai đoạn tích hợp-kiểm tra, do đó cho phép thực thi giai đoạn kiểm tra sau tích hợp.


2
Sau đó, câu hỏi trở thành: tại sao lại sử dụng Surefire nếu họ nói với chúng tôi rằng nó có thể khiến mọi thứ ở trạng thái không chính xác?
user118967

6

Ở quốc gia của tôi, kết quả thứ hai trên google khi tìm kiếm "maven failsafe maven surefire" để truy cập Câu hỏi thường gặp này: Sự khác biệt giữa maven-failsafe-plugin và maven-surefire-plugin nêu rõ:

maven-surefire-plugin được thiết kế để chạy các bài kiểm tra đơn vị và nếu bất kỳ bài kiểm tra nào không thành công thì nó sẽ không xây dựng được ngay lập tức.

maven-failsafe-plugin được thiết kế để chạy các bài kiểm tra tích hợp và tách các lỗi của quá trình xây dựng nếu có lỗi kiểm tra từ việc thực sự chạy các bài kiểm tra. "

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.