BerryCrush Developer Guide

Architecture & Design

  • BerryCrush Architecture
    • System Overview
    • Core Components
      • 1. Scenario Definition Layer
      • 2. Parsing and Loading
      • 3. OpenAPI Integration
      • 4. Execution Engine
      • 5. Plugin System
      • 6. JUnit Integration
      • 7. Spring Context Integration
    • Data Flow
      • Scenario Execution Flow
      • Variable Substitution
    • Key Design Decisions
      • 1. OpenAPI-First Validation
      • 2. Pluggable Step Definitions
      • 3. Modular Design
      • 4. Priority-Based Plugin Execution
    • Thread Safety
    • Error Handling
      • Scenario Parsing Errors
      • Execution Errors
      • Plugin Errors
  • Module Structure
    • Project Layout
    • Module Dependencies
    • Module Details
      • berrycrush/core
      • berrycrush/junit
      • berrycrush/spring
      • samples/petstore
      • berrycrush/doc
    • Build Commands
      • Build All Modules
      • Build Specific Module
      • Run Tests
      • Generate Documentation
      • Check Dependencies
    • Version Catalog
    • Publishing Coordinates
  • Class Hierarchy
    • Core Module (berrycrush/core)
      • Domain Model
      • DSL Classes
      • Scenario Parsing
      • Execution Engine
      • OpenAPI Integration
      • Step Definitions
      • Plugin System
      • Reporting
      • Configuration
      • Context and Variables
      • Logging
      • Exceptions
    • JUnit Module (berrycrush/junit)
      • Annotations
      • Bindings
      • Configuration Values
      • Test Engine
      • Discovery
      • SPI
    • Spring Module (berrycrush/spring)
    • Class Relationships
      • Scenario Execution Flow
      • Plugin Hierarchy
      • Bindings Provider Chain
    • Key Extension Points
      • 1. Custom Plugins
      • 2. Custom Step Definitions
      • 3. Custom Bindings Provider
      • 4. Custom HTTP Logger

Implementation Details

  • Scenario File Syntax
    • File Types
    • File Encoding
    • Complete Grammar (EBNF)
    • Tags
      • Built-in Tags
      • Tag Filtering with JUnit
    • Features and Background
      • Basic Feature
      • Feature with Background
      • Tagged Features
    • Quick Reference
      • Basic Scenario
      • With Parameters Block
    • Step Keywords
    • Step Directives
      • API Call (call)
      • Assertions (assert)
      • Extraction (extract)
      • Conditional Assertions (if/else if/else/fail)
      • Fragment Inclusion (include)
      • Request Body (body:)
    • Auto-Generated Tests (auto:)
      • Syntax
      • Basic Example
      • Test Types
      • Parameter Locations
      • Context Variables
      • Complete Example
      • Test Display Names
      • Best Practices
    • Parameters Block
      • File-Level Parameters
      • Feature-Level Parameters
      • Supported Parameters
      • Nested Parameter Syntax
    • Variable Substitution
      • Sources
      • Scope Rules
      • Example
      • Escaping Variable Syntax
    • Parameterized Scenarios (Scenario Outline)
    • Fragment Files
    • Comments
    • Custom Steps
      • Defining Custom Steps
      • Step Patterns
      • Using Custom Steps in Scenarios
      • StepContext
      • Configuration
    • Custom Assertions
      • Defining Custom Assertions
      • Assertion Patterns
      • Using Custom Assertions in Scenarios
      • AssertionContext
      • AssertionResult
      • Configuration
    • Best Practices
      • 1. Use Descriptive Names
      • 2. Group Related Assertions
      • 3. Extract Values for Data Flow
      • 4. Use Fragments for Common Setup
      • 5. Enable Variable Sharing for Workflows
    • Error Messages
      • Parse Errors
      • Runtime Errors
  • Parameters Scope Architecture
    • Overview
    • Scope Hierarchy
    • Current Implementation (File-Level Only)
      • Supported Parameters
    • Proposed: Feature-Level Parameters
    • Parameter Inheritance
      • Precedence Rules
    • Variable Sharing Behavior
      • Without shareVariablesAcrossScenarios
      • With File-Level shareVariablesAcrossScenarios: true
      • With Feature-Level shareVariablesAcrossScenarios: true
    • Variable Lifecycle
      • Scope Boundaries
      • Variable Reset Points
    • AST Structure
      • Current Structure
      • Proposed Structure
    • Implementation Notes
      • Parser Changes
      • Executor Changes
    • See Also
  • Auto-Test Provider Extensibility
    • Overview
    • Built-in Providers
      • Invalid Test Providers
      • Security Test Providers
      • Multi Test Providers
    • Creating Custom Providers
      • Custom Invalid Test Provider
      • Custom Security Test Provider
      • Registering via ServiceLoader
    • Provider Priority
    • Excluding Test Types
    • Programmatic Registration
    • Test Type Naming Conventions
    • Multi-Test Providers
      • MultiTestProvider Interface
      • Built-in Multi-Test Providers
      • Custom Multi-Test Provider
      • Registering Multi-Test Providers
      • Programmatic Registration
      • Configuration Parameters
    • Kotlin DSL Auto-Test API
      • Basic Usage
      • Using Boolean Parameters
      • Multi-Request Idempotency Tests
      • Custom Multi-Test Parameters
      • Excluding Test Categories
      • Test Display Names
  • OpenAPI Version Support
    • Supported Versions
    • Architecture
      • Key Interfaces
    • Feature Detection
    • OpenAPI 3.1.x Features
      • Webhooks
      • JSON Schema 2020-12
    • Implementation Details
      • SwaggerParserAdapter
      • SpecRegistry Integration
    • Best Practices
    • Test Fixtures
    • See Also

Development Tools

  • Development Tools
    • Build System
      • Gradle
      • Common Tasks
      • Module-Specific Tasks
    • Code Formatting
      • ktlint
    • Documentation
      • API Documentation (Dokka)
      • User Documentation (Sphinx)
    • Dependency Management
      • Version Catalog
      • Viewing Dependencies
      • OWASP Dependency Check
    • Testing
      • Running Tests
      • Test Reports
      • Test Coverage (Future)
    • IDE Setup
      • IntelliJ IDEA (Recommended)
      • VS Code
    • Git Workflow
      • Branch Naming
      • Commit Messages
      • Pre-commit Checks
    • Continuous Integration
      • GitHub Actions (Recommended Setup)
    • Debugging
      • Debug Tests in IDE
      • Debug Scenario Execution
      • Debug Parser
    • Useful Commands Reference
    • Troubleshooting
      • Common Issues
      • Getting Help
  • Contributing to BerryCrush
    • Getting Started
    • Development Workflow
      • 1. Create a Branch
      • 2. Make Changes
      • 3. Format Code
      • 4. Run Tests
      • 5. Commit Changes
      • 6. Push and Create PR
    • Code Quality Standards
      • Kotlin Style
      • Testing
      • Documentation
    • Pull Request Guidelines
    • Reporting Issues
    • License
BerryCrush Developer Guide
  • Search


© Copyright 2026, BerryCrush Team.

Built with Sphinx using a theme provided by Read the Docs.