PHPackages                             behat/behat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. behat/behat

ActiveLibrary[Testing &amp; Quality](/categories/testing)

behat/behat
===========

Scenario-oriented BDD framework for PHP

v3.30.0(1mo ago)4.0k96.8M—3%614[50 issues](https://github.com/Behat/Behat/issues)[4 PRs](https://github.com/Behat/Behat/pulls)20MITPHPPHP &gt;=8.2 &lt;8.6CI passing

Since Dec 14Pushed yesterday139 watchersCompare

[ Source](https://github.com/Behat/Behat)[ Packagist](https://packagist.org/packages/behat/behat)[ Docs](https://behat.org/)[ GitHub Sponsors](https://github.com/acoulton)[ GitHub Sponsors](https://github.com/carlos-granados)[ RSS](/packages/behat-behat/feed)WikiDiscussions 3.x Synced 1mo ago

READMEChangelog (10)Dependencies (40)Versions (111)Used By (20)

[![Behat](https://github.com/Behat/logo/raw/master/logo.png)](https://github.com/Behat/logo/raw/master/logo.png)

Behat is a BDD framework for PHP to help you test business expectations.

[![Gitter chat](https://camo.githubusercontent.com/898bcc220b438357116c39e000db51270ea3bd23ad56214a5c68ff2c32bb9024/68747470733a2f2f6261646765732e6769747465722e696d2f42656861742f42656861742e737667)](https://gitter.im/Behat/Behat)[![License](https://camo.githubusercontent.com/623e82b6c50c5ad53c46c79312e7a82823e6681ec2ce403873b7fa5a6a3e6334/68747470733a2f2f706f7365722e707567782e6f72672f62656861742f62656861742f6c6963656e73652e737667)](https://packagist.org/packages/behat/behat)[![Build Status](https://github.com/Behat/Behat/workflows/Build/badge.svg)](https://github.com/Behat/Behat/actions?query=workflow%3ABuild)

Installing Behat
----------------

[](#installing-behat)

The easiest way to install Behat is by using [Composer](https://getcomposer.org):

```
composer require --dev behat/behat
```

After that you'll be able to run Behat via:

```
vendor/bin/behat
```

Installing Development Version
------------------------------

[](#installing-development-version)

Clone the repository and install dependencies via [Composer](https://getcomposer.org):

```
composer install
```

After that you will be able to run development version of Behat via:

```
bin/behat
```

Contributing
------------

[](#contributing)

Before contributing to Behat, please take a look at the [CONTRIBUTING.md](CONTRIBUTING.md) document.

Versioning
----------

[](#versioning)

Starting from `v3.0.0`, Behat is following [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html). This basically means that if all you do is implement interfaces (like [this one](https://github.com/Behat/Behat/blob/v3.1.0/src/Behat/Behat/Context/ContextClass/ClassResolver.php#L15-L22)) and use service constants (like [this one](https://github.com/Behat/Behat/blob/v3.1.0/src/Behat/Behat/Context/ServiceContainer/ContextExtension.php#L46)), you would not have any backwards compatibility issues with Behat up until `v4.0.0` (or later major) is released. Exception could be an extremely rare case where BC break is introduced as a measure to fix a serious issue.

You can read detailed guidance on what BC means in [Symfony BC guide](https://symfony.com/doc/current/contributing/code/bc.html).

Useful Links
------------

[](#useful-links)

- The main website is at
- The documentation is at
- [Note on Patches/Pull Requests](CONTRIBUTING.md)

Contributors
------------

[](#contributors)

- Konstantin Kudryashov [everzet](https://github.com/everzet) \[original developer\]
- Andrew Coulton [acoulton](https://github.com/acoulton) \[current maintainer\]
- Carlos Granados [carlos-granados](https://github.com/carlos-granados) \[current maintainer\]
- Christophe Coevoet [stof](https://github.com/stof) \[current maintainer\]
- Other [awesome developers](https://github.com/Behat/Behat/graphs/contributors)

Support the project
-------------------

[](#support-the-project)

Behat is free software, maintained by volunteers as a gift for users. If you'd like to see the project continue to thrive, and particularly if you use it for work, we'd encourage you to contribute.

Contributions of time - whether code, documentation, or support reviewing PRs and triaging issues - are very welcome and valued by the maintainers and the wider Behat community.

But we also believe that [financial sponsorship is an important part of a healthy Open Source ecosystem](https://opensourcepledge.com/about/). Maintaining a project like Behat requires a significant commitment from the core team: your support will help us to keep making that time available over the long term. Even small contributions make a big difference.

You can support [@acoulton](https://github.com/acoulton), [@carlos-granados](https://github.com/carlos-granados) and [@stof](https://github.com/stof) on GitHub sponsors. If you'd like to discuss supporting us in a different way, please get in touch!

Technology Sponsors
-------------------

[](#technology-sponsors)

Technology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work.

[![JetBrains](https://camo.githubusercontent.com/b5639e7738c6dfae9fe3f3e20175570b7376ce2577a772e09c25c2d4f14bf86e/68747470733a2f2f7265736f75726365732e6a6574627261696e732e636f6d2f73746f726167652f70726f64756374732f636f6d70616e792f6272616e642f6c6f676f732f6a6574627261696e732e737667)](https://jb.gg/OpenSource)

[![](GitHub_Lockup_Dark.svg)](https://github.com)

###  Health Score

88

—

ExcellentBetter than 100% of packages

Maintenance95

Actively maintained with recent releases

Popularity82

Widely adopted with strong download metrics

Community68

Healthy contributor diversity

Maturity97

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 67.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~47 days

Recently: every ~26 days

Total

111

Last Release

52d ago

Major Versions

v2.5.3 → v3.0.32014-04-27

v2.5.4 → v3.0.152015-02-22

v2.5.5 → v3.1.0rc12015-12-30

2.5.x-dev → v3.2.0rc12016-09-02

3.x-dev → 4.x-dev2026-03-27

PHP version history (7 changes)v2.2.0PHP &gt;=5.3.1

v3.0.0beta1PHP &gt;=5.3.3

v3.8.0PHP ^7.2 || ^8.0

v3.16.0PHP 8.1.\* || 8.2.\* || 8.3.\* || 8.4.\*

v3.26.0PHP &gt;=8.1 &lt;8.5

v3.27.0PHP &gt;=8.1 &lt;8.6

v3.30.0PHP &gt;=8.2 &lt;8.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/75c5d927b0434111db9720dd78af8c83385cf28bb9aeafd031ba8cb0c4ffc558?d=identicon)[Stof](/maintainers/Stof)

![](https://www.gravatar.com/avatar/afabc43afc890656b1d04457e0a313739f481b31275ed565d69ec125d35fef3b?d=identicon)[everzet](/maintainers/everzet)

![](https://www.gravatar.com/avatar/e7c4612e19ba73b517d8c3e15890af6687f8a206eb56676c1714209534378429?d=identicon)[ciaranmcnulty](/maintainers/ciaranmcnulty)

![](https://www.gravatar.com/avatar/ddce56b3ed9857e5c4a25511e5925b793a1f04bd5fb8f19f42932a0b6dba914f?d=identicon)[pamil](/maintainers/pamil)

---

Top Contributors

[![everzet](https://avatars.githubusercontent.com/u/30813?v=4)](https://github.com/everzet "everzet (2307 commits)")[![carlos-granados](https://avatars.githubusercontent.com/u/1383106?v=4)](https://github.com/carlos-granados "carlos-granados (257 commits)")[![acoulton](https://avatars.githubusercontent.com/u/416566?v=4)](https://github.com/acoulton "acoulton (199 commits)")[![stof](https://avatars.githubusercontent.com/u/439401?v=4)](https://github.com/stof "stof (156 commits)")[![ciaranmcnulty](https://avatars.githubusercontent.com/u/237866?v=4)](https://github.com/ciaranmcnulty "ciaranmcnulty (152 commits)")[![wouterj](https://avatars.githubusercontent.com/u/749025?v=4)](https://github.com/wouterj "wouterj (37 commits)")[![pamil](https://avatars.githubusercontent.com/u/1897953?v=4)](https://github.com/pamil "pamil (37 commits)")[![loic425](https://avatars.githubusercontent.com/u/8329789?v=4)](https://github.com/loic425 "loic425 (32 commits)")[![rpkamp](https://avatars.githubusercontent.com/u/1059790?v=4)](https://github.com/rpkamp "rpkamp (28 commits)")[![Taluu](https://avatars.githubusercontent.com/u/239685?v=4)](https://github.com/Taluu "Taluu (20 commits)")[![jdeniau](https://avatars.githubusercontent.com/u/1398469?v=4)](https://github.com/jdeniau "jdeniau (20 commits)")[![muhqu](https://avatars.githubusercontent.com/u/26716?v=4)](https://github.com/muhqu "muhqu (18 commits)")[![japicoder](https://avatars.githubusercontent.com/u/4169920?v=4)](https://github.com/japicoder "japicoder (16 commits)")[![jakzal](https://avatars.githubusercontent.com/u/190447?v=4)](https://github.com/jakzal "jakzal (16 commits)")[![glennmcewan](https://avatars.githubusercontent.com/u/26575756?v=4)](https://github.com/glennmcewan "glennmcewan (13 commits)")[![uuf6429](https://avatars.githubusercontent.com/u/230049?v=4)](https://github.com/uuf6429 "uuf6429 (12 commits)")[![headrevision](https://avatars.githubusercontent.com/u/947622?v=4)](https://github.com/headrevision "headrevision (11 commits)")[![simonhammes](https://avatars.githubusercontent.com/u/10352679?v=4)](https://github.com/simonhammes "simonhammes (10 commits)")[![heiglandreas](https://avatars.githubusercontent.com/u/91998?v=4)](https://github.com/heiglandreas "heiglandreas (9 commits)")[![snapshotpl](https://avatars.githubusercontent.com/u/312655?v=4)](https://github.com/snapshotpl "snapshotpl (8 commits)")

---

Tags

bddbehatbehavior-driven-developmentcucumberdocumentation-toolgherkinphptest-driven-developmenttestingsymfonybusinessdocumentationBDDdevelopmentScrumexamplesScenarioBDDStoryBDDAgileUser story

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/behat-behat/health.svg)

```
[![Health](https://phpackages.com/badges/behat-behat/health.svg)](https://phpackages.com/packages/behat-behat)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k26.2M1.8k](/packages/infection-infection)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
