22

Tôi đọc plugin Maven Failsafe được thiết kế đặc biệt để chạy các bài kiểm tra tích hợp. Hiện tại tôi đang làm việc trên một dự án đa mô-đun và các bài kiểm tra tích hợp nằm trong mô-đun riêng biệt của nó, được viết bằng TestNg và chạy bằng cách sử dụng plugin chắc chắn. Chúng tôi không có xung đột với các bài kiểm tra đơn vị vì chỉ các bài kiểm tra tích hợp mới được chạy trong giai đoạn thử nghiệm trong mô-đun đó. Và để thiết lập môi trường trước khi thử nghiệm, và làm sạch nó sau khi chạy thử nghiệm, @BeforeSuite @AfterSuite TestNg Chú thích được sử dụng. Vì vậy, không cần phải tận dụng giai đoạn thử nghiệm tích hợp trước, giai đoạn thử nghiệm tích hợp, giai đoạn hậu kiểm thử được sử dụng bởi plugin FailSafe.Lợi ích của Maven FailSafe Plugin

  • Tôi còn thiếu thêm bất kỳ lợi ích nào nữa không, bằng cách không sử dụng plugin Failsafe?
  • Có cách nào tốt hơn để thực hiện yêu cầu hiện tại của tôi bằng cách sử dụng plugin Failsafe không?
  • Tôi có thể khởi động máy chủ, tắt, giải nén tệp, v.v. trong các giai đoạn thử nghiệm tích hợp trước, thử nghiệm tích hợp sau mà không cần viết trình cắm maven không?

Trả lời

15

Nếu bạn đã có thiết lập thử nghiệm/teardown của riêng bạn trong các suite, trông giống như bạn làm, không có nhiều bạn có thể đạt được từ plugin FailSafe.

Plugin FailSafe hữu ích trong các trường hợp Thiết lập hệ thống của bạn được thử nghiệm tốn kém hoặc mất nhiều thời gian như khởi động Servlet hoặc hệ thống phân phối. Cách plugin FailSafe có ích trong các tình huống này là bạn có thể thiết lập môi trường này trong giai đoạn pre-integration-test. Plugin này cũng không dừng việc thực hiện xây dựng Maven khi thử nghiệm không thành công, cho phép bạn dọn sạch tất cả các tạo phẩm của mình trong giai đoạn post-integration-test, sau đó nó kiểm tra trạng thái của các thử nghiệm của bạn và vượt qua hoặc không xây dựng phù hợp trong giai đoạn verify.

19

Failsafe có một tính năng lớn so với Surefire: Khi kiểm tra không thành công, nó không bị hủy ngay lập tức. Thay vào đó nó cho phép mã dọn dẹp chạy (thường mất máy chủ Jetty).