PHPackages                             forceedge01/bdd-analyser - 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. [CLI &amp; Console](/categories/cli)
4. /
5. forceedge01/bdd-analyser

ActiveLibrary[CLI &amp; Console](/categories/cli)

forceedge01/bdd-analyser
========================

Analyse bdd scripts and find issues with detailed information and how to address these issues to prolong the longevitiy of your behaviour suite

2.2.0(3y ago)271[2 issues](https://github.com/InevitableTech/behaviour-suite-analyser/issues)[2 PRs](https://github.com/InevitableTech/behaviour-suite-analyser/pulls)MITPHPPHP ^8.0

Since Jan 24Pushed 3y ago1 watchersCompare

[ Source](https://github.com/InevitableTech/behaviour-suite-analyser)[ Packagist](https://packagist.org/packages/forceedge01/bdd-analyser)[ RSS](/packages/forceedge01-bdd-analyser/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (5)Versions (40)Used By (0)

Introduction
============

[](#introduction)

Perform static analysis on your cucumber/gherkin styles bdd scripts and remediate issues that will prolong the life your test suite.

This tool is meant to be language agnostic (even though written in PHP7) and expected to work with any cucumber/gherkin style files.

Here is an example of a basic run:

[![Run](https://raw.githubusercontent.com/forceedge01/behaviour-suite-analyser/master/extras/bdd-analyser.png#version=1)](https://raw.githubusercontent.com/forceedge01/behaviour-suite-analyser/master/extras/bdd-analyser.png#version=1)

Html report:

[![Run](https://raw.githubusercontent.com/forceedge01/behaviour-suite-analyser/master/extras/report.png#version=1)](https://raw.githubusercontent.com/forceedge01/behaviour-suite-analyser/master/extras/report.png#version=1)

- Summary of analysis.
- Segmented data view.
- Track your fixes as you resolve them.

Install
=======

[](#install)

Detailed setup blog post

Quick Installation:

```
composer global require forceedge01/bdd-analyser

```

Initialise config file to root of project, setup includes the kind of files you want to scan and the rules you want applied.

Example run:

```
bdd-analyser init
bdd-analyser scan . --config=.
```

The above command will lint the features folder.

Configure the bdd-analyser-config.yaml file with the extension of the files that contain the cucumber/gherkin scripts.

```
    feature_file_extension: feature
```

Major change
------------

[](#major-change)

- PHP version 8.0 compatible.

Development
-----------

[](#development)

```
make install

```

Adding new rules is as simple as creating a new class and extending it from the BaseRule class which implements the necessary interface and abstraction.

```
namespace MyApp\BddScriptRules;

use Forceedge01\BDDStaticAnalyserRules\Entities;
use Forceedge01\BDDStaticAnalyserRules\Rules;

class MyRule extends Rules\BaseRule {

}
```

Then simply add your new class to the bdd-analyser-config.yaml rules array.

```
    ...
    rules:
        ...
        - MyApp\BddScriptRules\MyRule
    ...
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~2 days

Total

38

Last Release

1135d ago

Major Versions

1.3.5 → 2.0.02023-02-08

1.3.6 → 2.1.0.x-dev2023-02-11

1.4.0 → 2.1.02023-02-15

1.4.1 → 2.2.02023-03-16

1.3.x-dev → 2.0.x-dev2023-04-09

PHP version history (2 changes)1.0.0PHP ^7.1

2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4529502cab11a6993a59a1d1a2818f438d073636e3f59dd617a259be74e3feae?d=identicon)[forceedge](/maintainers/forceedge)

---

Top Contributors

[![forceedge01](https://avatars.githubusercontent.com/u/1619816?v=4)](https://github.com/forceedge01 "forceedge01 (106 commits)")

---

Tags

clicommand-linestatic analysislintgherkintest-automationbehaviour-testsbehaviour-suitebdd-analysisbehaviour-scriptsbdd-lintgherkin-lint

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/forceedge01-bdd-analyser/health.svg)

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

###  Alternatives

[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.6k331.8M8.5k](/packages/nunomaduro-collision)[acmephp/acmephp

Let's Encrypt client written in PHP

649155.1k](/packages/acmephp-acmephp)[sclable/xml-lint

A php cli tool to lint and validate xml files.

24626.9k23](/packages/sclable-xml-lint)[j13k/yaml-lint

A compact command line utility for checking YAML file syntax

161.1M19](/packages/j13k-yaml-lint)

PHPackages © 2026

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