{"library":"radish-bdd","title":"radish-bdd","description":"radish is a Behavior Driven Development tool completely written in Python. It supports all Gherkin language features and also implements unconventional BDD features such as Scenario Preconditions, Scenario Loops, Constants, and Expressions. The library is actively maintained, with the latest stable version 0.18.4 released on February 24, 2026.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install radish-bdd"],"cli":{"name":"radish","version":"0.18.4"}},"imports":["from radish import given, when, then","from radish import before, after","from radish import world","from radish import main"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"# 1. Create a feature file (e.g., calculator.feature):\n# Feature: Simple Calculator\n#   In order to avoid silly mistakes\n#   As a math enthusiast\n#   I want to be able to add numbers\n#\n#   Scenario: Add two numbers\n#     Given I have the number 5\n#     And I have the number 7\n#     When I add them\n#     Then the result should be 12\n\n# 2. Create a step implementation file (e.g., radish/steps.py):\nfrom radish import given, when, then, world\n\n@given(\"I have the number {number:g}\")\ndef have_number(step, number):\n    if not hasattr(world, 'numbers'):\n        world.numbers = []\n    world.numbers.append(number)\n\n@when(\"I add them\")\ndef add_numbers(step):\n    world.result = sum(world.numbers)\n\n@then(\"the result should be {expected_result:g}\")\ndef check_result(step, expected_result):\n    assert world.result == expected_result\n\n# 3. Run from your terminal in the directory containing 'calculator.feature':\n# radish calculator.feature","lang":"python","description":"To get started with radish, you typically create a `.feature` file written in Gherkin syntax and a corresponding Python file (e.g., `radish/steps.py`) with step implementations. Then, you execute `radish` from your terminal, pointing to the feature file.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"0.18.4","pypi_latest":"0.18.4","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.3,"avg_import_s":0.14,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.11,"mem_mb":8.8,"disk_size":"23.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.08,"mem_mb":8.8,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":9.1,"disk_size":"26.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.15,"mem_mb":9.1,"disk_size":"27M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":9.3,"disk_size":"16.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":0.16,"mem_mb":9.3,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.16,"mem_mb":9.7,"disk_size":"16.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.15,"mem_mb":9.5,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.12,"mem_mb":8.6,"disk_size":"23.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"radish-bdd","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.11,"mem_mb":8.6,"disk_size":"24M"}]}}