Skip to content


Repository files navigation


PHP library to test end-to-end RESTful API services using Gherkin language (Behat)

Latest Stable Version Master Build Status Master Coverage Status License Total Downloads

Develop Branch Develop Build Status Develop Coverage Status

Donate via PayPal Please consider supporting this project by making a donation via PayPal


PHP library to test end-to-end RESTful API services using Gherkin language (Behat)


This project requires PHP 5.4.0+ to use the PHP built-in web server.

  • Create a composer.json in your projects root-directory and include this project:
    "require-dev": {
        "tecnickcom/tc-lib-testrest": "^2.10"

Or add to an existing project with:

composer require tecnickcom/tc-lib-testrest ^2.10
  • Create a behat.yml file in the root directory of your project like the one in test/behat.yml and check the internal comments and options.
  • Create a test/features folder in your project like the one in test/features and write your own ".feature" files like the provided example.
  • Create (or update) a makefile like the one in this project which contains the "btest" target. This target starts the PHP built-in server and execute the Behat tests.

Development - getting started

First, you need to install all dependencies (you'll need composer):

$ cd /tmp && curl -sS | php
$ sudo mv composer.phar /usr/local/bin/composer

The following command will download all the composer dependencies required for development and testing:

make build_dev

Running Tests

The internal unit tests includes a database testing, so you need to install MySQL and SQLite with PDO drivers. You also need to create the following MySQL database with the right privileges:

GRANT ALL ON testrest_test.* TO 'testrest'@'%' IDENTIFIED BY 'testrest';

You also need to install APC and memcached to test all features.

To execute all the tests you can now run make qa_all.

Please issue the command make help to see all available options and execute individual tests.

Coding standards

This project follows the PSR2 coding standard. To see any errors in your code, you can use the make phpcs command. We also use a tool to detect any code smells. To run it, use make phpmd.

Before submitting a Pull Request, please execute the make qa_all to be sure that no errors where introduced. Additionally, please check the target/coverage/index.html report to be sure that every line of code is covered by a unit test. If you add any new gherkin language feature please also add an example in test/features.

Developer(s) Contact