testo/retry
Testo Retry plugin: automatically rerun failed tests using a configurable retry policy. Helps reduce CI noise from flaky, transient failures and keep pipelines stable while issues are investigated. Installed as a dev dependency via composer require --dev testo/retry.
spatie/laravel-retryable for queues, guzzlehttp/retrier for HTTP).RetryServiceProvider, no Retry facade, or retry() helper methods).RetryPolicy logic) and wrap it in a Laravel service. Requires manual effort to adapt to Laravel’s DI container.pest-plugin-retry, symfony/retrier, or spatie/laravel-retryable).RetryPolicy bound to Laravel’s IoC.TestFailed events).spatie/laravel-retryable) already solve this better?spatie/laravel-retryable (for queues) or guzzlehttp/retrier (for HTTP) are better aligned with Laravel’s architecture.testo/retry and validate with a subset of flaky tests.// Laravel/Pest-compatible retry trait
trait RetryableTests {
protected function retryTest(Closure $test, int $maxAttempts = 3, float $delay = 1.0) {
// Adapt testo/retry's logic here
}
}
pest-plugin-retry, symfony/retrier) if they meet requirements.spatie/laravel-retryable (queues) or guzzlehttp/retrier (HTTP).app()->make(RetryPolicy::class)).TestFailed events natively.testo/retry with Pest plugins, PHPUnit listeners, or Laravel-native tools.testo/retry in a non-critical project.testo/retry and wrap it in a Laravel service.// app/Services/RetryService.php
class RetryService {
public function executeWithRetry(Closure $callback, int $maxAttempts) {
// Use testo/retry's RetryPolicy under the hood
}
}
pest-plugin-retry).phpunit.xml or Pest’s output).How can I help you explore Laravel packages today?