PHPackages                             entanet/entanet-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. entanet/entanet-behat

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

entanet/entanet-behat
=====================

A package to help Entanet's QA department automate features with Behat.

v3.0.2(6y ago)34.7k2[4 PRs](https://github.com/Entanet/entanet-behat/pulls)MITPHPPHP ^7.1.3

Since Jan 22Pushed 3y ago7 watchersCompare

[ Source](https://github.com/Entanet/entanet-behat)[ Packagist](https://packagist.org/packages/entanet/entanet-behat)[ RSS](/packages/entanet-entanet-behat/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (11)Versions (22)Used By (0)

**Entanet Behat**
=================

[](#entanet-behat)

This package is designed specifically for Entanet's Software QA department to aid with automation of features.

Installing
==========

[](#installing)

Require the entanet behat package

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

```

Add the following to the config/app.php providers array

```
Superbalist\LaravelPubSub\PubSubServiceProvider::class

```

Publish the behat environment and YAML file

```
php artisan vendor:publish --provider="Entanet\Behat\BehatServiceProvider"

```

Check the commands available

```
vendor/bin/behat -dl

```

Usage
=====

[](#usage)

Table of Contents
-----------------

[](#table-of-contents)

### Running

[](#running)

- [Pipeline Suite](#pipeline-suite)
- [UI Suite](#ui-suite)

### Database

[](#database)

- [Insert a row](#insert-a-row)
- [Check a row exists](#check-a-row-exists)

### Kafka

[](#kafka)

- [Publish an event](#publish-an-event)
- [Check an event](#check-an-event)

#### Pipeline Suite

[](#pipeline-suite)

This includes Kafka, Database and API testing. To be run as part of the deployment pipeline. A failed test will break a build. All artisan commands with pubsub will be run automatically for each scenario.

```
vendor/bin/behat --suite=pipeline

```

#### UI Suite

[](#ui-suite)

This includes UI testing. To be run locally and not within a pipeline.

```
vendor/bin/behat --suite=ui

```

#### Insert a row

[](#insert-a-row)

Seed the database with rows

```
Given I have the following in the "users" table
| name | email                |
| Tom  | tomos.lloyd@cityfibre.com |
| Ryan | ryan.ralphs@cityfibre.com |
```

#### Check a row exists

[](#check-a-row-exists)

Check a row exists after running some code

```
Then I should have the following in the "users" table
| name | email                |
| Tom  | tomos.lloyd@cityfibre.com |
| Ryan | ryan.ralphs@cityfibre.com |
```

#### Publish an event

[](#publish-an-event)

Publish an event to a topic

```
When The following events are published to "user-created"
| name | email                |
| Tom  | tomos.lloyd@cityfibre.com |
| Ryan | ryan.ralphs@cityfibre.com |
```

#### Check an event

[](#check-an-event)

Check an event has been created

```
Then The following events should be published to "user-created"
| name | email                |
| Tom  | tomos.lloyd@cityfibre.com |
| Ryan | ryan.ralphs@cityfibre.com |
```

Examples
========

[](#examples)

Consume an event and check that a row exists in the database

```
Feature: Store a person in the database
  In order to manipulate people in this application
  As people are created in other systems
  We will need to listen people events and store them in the database

  Scenario: Listen to person created event and store in the people table
    When The following events are published to "user-created"
      | name | email                 |
      | Tom  | tomos.lloyd@cityfibre.com  |
      | Ryan | ryan.ralphs@cityfibre.com  |
    Then I should have the following in the "users" table
      | name | email                 |
      | Tom  | tomos.lloyd@cityfibre.com  |
      | Ryan | ryan.ralphs@cityfibre.com  |
```

Consume an event and check that another event was published

```
Feature: Store a person in the database
  In order to manipulate people in this application
  As people are created in other systems
  We will need to listen people events and store them in the database

  Scenario: Listen to person created event and store in the people table
    When The following events are published to "user-created"
      | name | email                 |
      | Tom  | tomos.lloyd@cityfibre.com  |
      | Ryan | ryan.ralphs@cityfibre.com  |
    Then I should have the following in the "users" table
      | name | email                 |
      | Tom  | tomos.lloyd@cityfibre.com  |
      | Ryan | ryan.ralphs@cityfibre.com  |
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% 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 ~36 days

Recently: every ~20 days

Total

12

Last Release

2268d ago

Major Versions

v1.0.5 → v2.0.02019-04-26

v2.0.4 → v3.0.02020-01-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/a63f790da330037f4fbfa56da6b325675cec3f20c79f9446462fafbf143fbfc3?d=identicon)[tom-lloyd-entanet](/maintainers/tom-lloyd-entanet)

---

Top Contributors

[![EntaQARR](https://avatars.githubusercontent.com/u/31692030?v=4)](https://github.com/EntaQARR "EntaQARR (68 commits)")[![EntanetTomLloyd](https://avatars.githubusercontent.com/u/1703528?v=4)](https://github.com/EntanetTomLloyd "EntanetTomLloyd (25 commits)")[![jonesdev](https://avatars.githubusercontent.com/u/36740276?v=4)](https://github.com/jonesdev "jonesdev (7 commits)")[![tomlloyd](https://avatars.githubusercontent.com/u/51801753?v=4)](https://github.com/tomlloyd "tomlloyd (2 commits)")

### Embed Badge

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

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

###  Alternatives

[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[drupal/drupal-extension

Drupal extension for Behat

22215.1M147](/packages/drupal-drupal-extension)[jasonmccreary/laravel-test-assertions

A set of helpful assertions when testing Laravel applications.

3513.9M32](/packages/jasonmccreary-laravel-test-assertions)[drevops/behat-steps

Collection of steps for Behat

25381.7k3](/packages/drevops-behat-steps)[devinci/devinci-behat-extension

Provides extra behat goodies.

17593.9k](/packages/devinci-devinci-behat-extension)[polishsymfonycommunity/symfony2-mocker-extension

Behat extension for mocking services defined in the Symfony2 dependency injection container.

26253.1k4](/packages/polishsymfonycommunity-symfony2-mocker-extension)

PHPackages © 2026

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