tecnickcom / tc-lib-testrest
Library to test end-to-end RESTful services using Behat
Requires
- php: >=5.4
- behat/behat: ^2.5.5
- guzzle/guzzle: ^3.9.3
Requires (Dev)
- apigen/apigen: ^4.1.2
- bartlett/php-compatinfo: ^5.0.10 || ^5.0.12
- pdepend/pdepend: ^2.5.2
- phploc/phploc: ^2.1 || ^3.0 || ^4.0
- phpmd/phpmd: ^2.6.0
- phpunit/phpunit: ^4.8 || ^5.7 || ^6.5 || ^7.1
- sebastian/phpcpd: ^2.0 || ^3.0 || ^4.0
- squizlabs/php_codesniffer: ^2.8.0 || ^3.2.0
README
PHP library to test end-to-end RESTful API services using Gherkin language (Behat)
Please consider supporting this project by making a donation via PayPal
- category Library
- package \Com\Tecnick\TestRest
- author Nicola Asuni info@tecnick.com
- copyright 2015 MediaSift Ltd. http://datasift.com, 2016-2017 Tecnick.com LTD http://www.tecnick.com
- license The MIT License (MIT) - see LICENSE
- link https://github.com/tecnickcom/tc-lib-testrest
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
- Nicola Asuni info@tecnick.com