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

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

knectar/behat-ci
================

A console application that schedules, generates configurations, and runs behat tests on a server

1.1.0(10y ago)4124MITPHPPHP &gt;=5.3.9

Since Aug 4Pushed 10y ago7 watchersCompare

[ Source](https://github.com/Knectar/behat-ci)[ Packagist](https://packagist.org/packages/knectar/behat-ci)[ Docs](https://github.com/Knectar/behat-ci)[ RSS](/packages/knectar-behat-ci/feed)WikiDiscussions master Synced 1mo ago

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

behat-ci
========

[](#behat-ci)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/986f2d155e4d58622b583e243a346db95bb887727b6b4a4a069057d1ae7157e9/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f4b6e65637461722f62656861742d63692f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/Knectar/behat-ci/?branch=master)

Introduction
------------

[](#introduction)

Behat continuous integration CLI is an efficient way to manage Behat configurations and have Behat testing run automatically when a project is updated. It will also generate a custom Behat.yml configuration file for you. All you have to do is specify the profiles.

System requirements
-------------------

[](#system-requirements)

- [Composer](https://getcomposer.org/)
- The latest stable version of [Symfony](http://symfony.com/ "Symfony 2")
- PHP 5.5+

Installation
------------

[](#installation)

1. Include behat-ci in your global composer.json with `composer global require knectar/behat-ci`
2. Run `composer global update` to install (No database configuration needed.)
3. Run `composer install` in the directory where the app was saved. (usually /home/user/.composer/vendor/knectar/behat-ci/app)
4. Update your system PATH to include the application's app directory (path/to/global/.composer/vendor/knectar/behat-ci/app)
5. That is all, we can now run this application's commands!

Configuration
-------------

[](#configuration)

The smooth running of behat-ci relies on several files working in synchrony.

*bhqueue.txt* is a simple text file that keeps track of when tests are scheduled to be run, written to by the `bh schedule` command.

*profiles.yml* is a list of device profiles as well as default Behat configuration. Feel free to add more and customize according to the current standards and what is available on sauce labs. See the sample files for use as a template.

*projects.yml* is a list of your projects that to run tests against. It will contain an entry per project, structured as follows:

```
whitetest: #the overall project name. uses the beanstalkapp machine name
  environments: # should match the branch
    -dev:
        base_url: http://example.com
        features: /path/to/project/features/directory
    -production:
        base_url: http://example.com
        features: /path/to/project/features/directory
  profiles: #to run as set in profiles.yml
    - win-chrome
    - android
    - iPhone
  behat-params: #optional additional parameters
        format: html
        out: /path/to/output.html
```

Note: by default, projects.yml, profiles.yml, bhqueue, and bhqueuelog are located in the /etc/behat-ci/ directory. Trigger will look for profiles.yml and projects.yml to be set up in /etc/behat-ci or in the user's home directory. Otherwise the absolute paths to the files must be set in config.yml so the command knows where to look.

Usage
-----

[](#usage)

For details on the commands in the console, simply run

```
bh

```

The application relies on 2 key commands,

```
bh schedule

```

Is to be called when changes are pushed (or manually). This command will

1. Update bhqueue.txt, which tells the application that tests need to be run.
2. Generate the .yml configuration file required to run customized Behat configurations. This file will be stored in /tmp and disposed of by the 'trigger' command. You may use behat-ci to just generate behat.yml files and execute behat testing manually by running `bh schedule $projname -b $branchname` followed by `behat -c /tmp/project_env.yml`

    bh trigger Is meant to be called periodically (every minute) by cron on the server. It checks bhqueue to see if a change has been made in the project and if testing needs to be done. It will run the Behat tests as needed with the specified flags/parameters.

To run tests manually in a single command, run

```
bh test

```

with the same input arguments as bh schedule, and the application will perform schedule and trigger consecutively.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 90.8% 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 ~61 days

Total

2

Last Release

3876d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5c1ffa3157365a7412f1753c2d4e8a8867e37121e343340deac3445d286675d5?d=identicon)[knectarjacob](/maintainers/knectarjacob)

---

Top Contributors

[![jgeryk](https://avatars.githubusercontent.com/u/6474974?v=4)](https://github.com/jgeryk "jgeryk (167 commits)")[![sanguis](https://avatars.githubusercontent.com/u/119819?v=4)](https://github.com/sanguis "sanguis (9 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (7 commits)")[![knectardev](https://avatars.githubusercontent.com/u/1679825?v=4)](https://github.com/knectardev "knectardev (1 commits)")

---

Tags

testingcontinuous integrationBehat

### Embed Badge

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

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

###  Alternatives

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k96.8M2.0k](/packages/behat-behat)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[orchestra/testbench

Laravel Testing Helper for Packages Development

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

Specification-oriented BDD framework for PHP 7.1+

1.9k36.7M3.1k](/packages/phpspec-phpspec)[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)[phpbench/phpbench

PHP Benchmarking Framework

2.0k13.0M627](/packages/phpbench-phpbench)

PHPackages © 2026

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