Library to test end-to-end RESTful services using Behat
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/Com/Tecnick/TestRest
test
.gitignore
.travis.yml
LICENSE
Makefile
README.md
RELEASE
VERSION
composer.json
phpcompatinfo.json
phpcs_test.xml
phpunit.xml.dist

README.md

tc-lib-testrest

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

Description

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

Installation

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 https://getcomposer.org/installer | 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:

CREATE DATABASE IF NOT EXISTS testrest_test;
GRANT ALL ON testrest_test.* TO 'testrest'@'%' IDENTIFIED BY 'testrest';
FLUSH PRIVILEGES;

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