Generated by GPT-5-mini| RSpec Core | |
|---|---|
| Name | RSpec Core |
| Developer | David Chelimsky, Myron Marston, Josh Susser |
| Released | 2005 |
| Programming language | Ruby (programming language) |
| Operating system | Cross-platform software |
| Genre | Software testing, Behavior-driven development |
| License | MIT License |
RSpec Core RSpec Core is the central engine of the RSpec testing toolchain for Ruby (programming language), providing the orchestration, example execution, and DSL parsing used by projects ranging from small libraries to large applications. It interoperates with companion libraries and tools across ecosystems such as Rails (web framework), Bundler (software), Rubygems and CI systems like Travis CI, GitHub Actions, and Jenkins. RSpec Core shaped practices in Behavior-driven development alongside contemporaries such as JUnit, Test::Unit (Ruby), and RSpec Rails.
RSpec Core implements an example-driven test runner that models executable specifications called examples and example groups, integrating with formatters and reporters used by RSpec Expectations, RSpec Mocks, and third-party formatters for JUnit (software), Formatters (computing) and custom CI dashboards. The project emphasizes a declarative DSL inspired by Story-driven development and influenced by earlier tools like RSpec (tool), Test-driven development, and frameworks such as Cucumber (software), Capybara (web testing), and Selenium (software). It supports structured lifecycle hooks comparable to patterns found in xUnit and integrates with dependency managers like Bundler (software), continuous integration offerings such as CircleCI, and coverage tools like SimpleCov.
Development began in the mid-2000s by contributors including David Chelimsky, evolving through collaboration with maintainers from projects such as ThoughtWorks and contributors active in the RubyGems community. Key milestones parallel releases of Ruby (programming language) interpreters like MRI (Matz's Ruby Interpreter), JRuby, and Rubinius (software), and adaptations to ecosystems represented by Ruby on Rails and Sinatra (web framework). The project matured alongside influential events and conferences like RubyConf, RailsConf, and EuRuKo, with contributions and discussions appearing in repositories hosted on platforms such as GitHub. Governance and contribution models reflect practices from Open-source software projects including Linux kernel and Apache Software Foundation-inspired collaboration.
RSpec Core is organized around a runner that orchestrates example discovery, filtering, and execution, using components comparable to concepts in Event-driven architecture, Command pattern, and test frameworks like JUnit (software) and NUnit. Major components include the example group hierarchy, formatter interface, reporter subsystem, and hook lifecycle. It defines a DSL that registers metadata processed by a filtering engine similar to tag systems used in Cucumber (software), and exposes configuration hooks analogous to adapters found in Rack (software). Integration points allow adapters for test double libraries such as RSpec Mocks, expectation libraries like RSpec Expectations, and external tools like Guard (tool) and Zeus (software).
RSpec Core's DSL uses keywords to declare example groups and examples; patterns mirror constructs in RSpec (tool) and complement behavior from Cucumber (software), enabling readable specifications that integrate with editors and IDEs such as RubyMine, Visual Studio Code, and Sublime Text. Typical constructs map to lifecycle hooks and metadata that interoperate with formatters producing output compatible with JUnit (software) consumers, CI services including Travis CI and CircleCI, and coverage tools like SimpleCov. Usage examples frequently appear in documentation and books produced by authors and educators active in events such as RubyConf and published by outlets linked to O'Reilly Media and Pragmatic Bookshelf.
RSpec Core exposes a configuration DSL enabling global and per-group settings, custom formatters, and filtered runs via tags and metadata reminiscent of tagging systems in Cucumber (software) and test runners like RSpec Rails. Plugins and extensions follow patterns common to RubyGems and integrate with package ecosystems managed via Bundler (software); notable integrations include formatters for JUnit (software), report aggregation for SonarQube, and CI-friendly reporters used by Jenkins and TeamCity. Customization points support third-party libraries such as Capybara (web testing), Database Cleaner (Ruby gem), and test double adapters used in projects like Padrino (web framework) and Hanami (framework).
RSpec Core integrates with development and CI tooling across the Ruby (programming language) ecosystem: runners and guard plugins link to Guard (tool), profiler integrations mirror tools like ruby-prof, and editors integrate through language servers and extensions for Visual Studio Code, RubyMine, and Emacs. Continuous integration, deployment, and reporting workflows connect RSpec output to systems like Travis CI, CircleCI, GitHub Actions, Jenkins, and TeamCity. The ecosystem includes adapters and gems that bridge to web testing stacks such as Capybara (web testing), browser automation tools like Selenium (software), and full-stack frameworks like Ruby on Rails.
RSpec Core is widely adopted across open-source and enterprise Ruby projects, with active contributions from individuals and organizations visible on GitHub and discussed at community events including RubyConf, RailsConf, and regional meetups. The community produces extensions, formatters, and educational material distributed via RubyGems, blogs, and publishers such as Pragmatic Bookshelf and O'Reilly Media. Major adopters and influencers in the ecosystem include contributors associated with ThoughtWorks, maintainers of Rails (web framework), and educators who present at conferences like EuRuKo and RubyConf. Category:Software testing