Một lượt kiểm thử có thể không thành công vì bất kỳ lý do nào. Đôi khi, bạn chỉ cần chạy lại lượt kiểm thử là đủ để lượt kiểm thử đó thành công trở lại (do tính không ổn định, chẳng hạn như do các vấn đề trong cơ sở hạ tầng cơ bản). Bạn có thể định cấu hình Tradefed để tự động thử lại.
Điểm cốt lõi của tính năng tự động thử lại là tránh chạy lại tất cả lượt kiểm thử; tính năng này chỉ chạy lại các lượt kiểm thử không thành công, giúp tiết kiệm đáng kể thời gian thực thi.
Tradefed cũng hỗ trợ chạy lượt kiểm thử nhiều lần để phát hiện tính không ổn định thông qua tính năng số lần lặp lại. Trong trường hợp này, tất cả lượt kiểm thử sẽ được chạy lại và lượt kiểm thử sẽ không thành công nếu bất kỳ lần lặp nào không thành công.
Bật tính năng tự động thử lại
Tính năng tự động thử lại được kiểm soát thông qua đối tượng
RetryDecision
. Đối tượng này cung cấp 2 lựa chọn để bật tính năng này: max-testcase-run-count
và retry-strategy.
max-testcase-run-count điều khiển số lần thử lại hoặc số lần lặp lại sẽ được thực hiện. Thuộc tính này đặt một giới hạn trên để tránh thử lại mãi mãi.
retry-strategy điều khiển quyết định về cách thử lại; hãy xem các phần sau để biết thêm thông tin chi tiết.
Tắt tính năng tự động thử lại
Hãy sử dụng lựa chọn sau:
--retry-strategy NO_RETRY
Thử lại các lỗi
Để thử lại các lỗi kiểm thử, hãy sử dụng các lựa chọn sau:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Thao tác này sẽ thử lại lỗi cho đến khi thành công hoặc cho đến khi đạt đến số lần thử lại tối đa, tuỳ theo điều kiện nào đáp ứng trước.
Số lần lặp lại
Để chạy lại lượt kiểm thử nhiều lần, bạn có thể sử dụng các lựa chọn sau:
--retry-strategy ITERATIONS --max-testcase-run-count X
Kết quả sẽ như thế nào?
Theo mặc định, trình báo cáo kết quả sẽ nhận được kết quả tổng hợp của tất cả các lần thử.
Ví dụ: Fail và Pass cho RETRY_ANY_FAILURE sẽ dẫn đến Pass tổng hợp vì lần thử lại đã xoá được lỗi.
Trình báo cáo có thể nhận được kết quả không tổng hợp. Để làm như vậy, họ cần mở rộng giao diện ISupportGranularResults khai báo hỗ trợ cho kết quả chi tiết (không tổng hợp).
Thông tin chi tiết về việc triển khai
Để bật tính năng tự động thử lại để chạy lại các lỗi ở cấp trường hợp kiểm thử, hãy triển khai ITestFilterReceiver.
Nếu không triển khai được ITestFilterReceiver, bạn có thể triển khai IAutoRetriableTest để kiểm soát cách chạy lại theo cách thủ công. InstalledInstrumentationsTest là một ví dụ về cách triển khai giao diện đó.