{"library":"robotframework-retryfailed","title":"Robot Framework RetryFailed Listener","description":"robotframework-retryfailed is a Robot Framework listener that enables automatic retrying of failed tests or tasks based on specific tags. It integrates directly with Robot Framework's execution, providing in-place retries for individual failing tests without requiring a separate re-execution command. The current version is 0.2.0, released in October 2022, and its release cadence appears infrequent.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install robotframework-retryfailed"],"cli":null},"imports":["robot --listener RetryFailed <your_suite.robot>","robot --listener RetryFailed:1 <your_suite.robot>"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\n\n# Create a dummy Robot Framework test file\nrobot_file_content = '''\n*** Settings ***\nLibrary    OperatingSystem\n\n*** Test Cases ***\nExample Failing Test\n    [Tags]    test:retry(2)\n    Fail If    True    This test is designed to fail and retry\n'''.strip()\n\nwith open('my_tests.robot', 'w') as f:\n    f.write(robot_file_content)\n\n# Run Robot Framework with the RetryFailed listener\n# For demonstration, we'll just print the command\n# In a real scenario, you'd run this via subprocess or directly in your shell\nrobot_command = f\"robot --listener RetryFailed:2 my_tests.robot\"\nprint(f\"To run the example, execute:\\n{robot_command}\")\n# Expected outcome: The test 'Example Failing Test' will fail, be retried twice, and ultimately still fail if 'Fail If True' is never satisfied.\n# The final report will show retries occurred.\n","lang":"python","description":"This quickstart demonstrates how to use the `robotframework-retryfailed` listener. It creates a simple Robot Framework file with a test case tagged for retries. The test is configured to fail, triggering the listener to retry it. Execute the generated `robot` command to see the retries in action.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.2.0","pypi_latest":"0.2.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.1,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2,"import_time_s":null,"mem_mb":null,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"26.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.1,"import_time_s":null,"mem_mb":null,"disk_size":"27M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.9,"import_time_s":null,"mem_mb":null,"disk_size":"19M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2,"import_time_s":null,"mem_mb":null,"disk_size":"19M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"robotframework-retryfailed","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.3,"import_time_s":null,"mem_mb":null,"disk_size":"24M"}]}}