kbunel / behat-test-generator
Generate automatic tests for all routes in you application, test that the response is good according to REST behavior.
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.1.0
Requires (Dev)
- behat/behat: ^3.5
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.3
- behat/mink-goutte-driver: ^1.2
- behat/mink-selenium2-driver: ^1.3
- behat/symfony2-extension: ^2.1
- behatch/contexts: ^3.2
- phpunit/phpunit: ~4.5
This package is not auto-updated.
Last update: 2024-10-30 08:33:47 UTC
README
This project is not maintened anymore
Add a command to generate API with behat. This command will parse controllers to get the routes and determine create simple test. The tests expectations are based on the HTTP response according to the method.
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require kbunel/behat-test-generator --dev
Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require kbunel/behat-test-generator --dev
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new BehatTestGenerator\BehatTestGeneratorBundle(); ); // ... } // ... }
Behat configuration
default: gherkin: cache: ~ extensions: Behat\Symfony2Extension: kernel: env: test debug: true class: TestAppKernel path: app/TestAppKernel.php Behat\MinkExtension: base_url: http://example.com files_path: '%paths.base%/behat/Fixtures/Files' sessions: default: symfony2: ~ javascript: selenium2: ~ Behatch\Extension: ~ suites: default: contexts: - FeatureContext: { container: '@service_container' } - Behat\MinkExtension\Context\MinkContext - behatch:context:rest - behatch:context:json - DatabaseContext: { entityManager: '@doctrine.orm.entity_manager', loader: '@fidry_alice_data_fixtures.doctrine.persister_loader' } # Add any context required, like an authentication one
Command
To generate the tests, run:
$ php bin/console kbunel:behat:generate-test
Available options
Add a tag:
$ php bin/console kbunel:behat:generate-test tag=new
Generate tests from a specific controller with his namespace:
$ php bin/console kbunel:behat:generate-test namespace='App\Controller\MyController'
Generate tests for specifics method (separated by a comma):
$ php bin/console kbunel:behat:generate-test methods='put,patch'
Generate tests from a specific namespace:
This option will get all routes from controllers whose namespace begin by the specified one
$ php bin/console kbunel:behat:generate-test fromNamespace='App\Controller\Users'
Available configuration
behat_test_generator: fixtures: folder: 'path/to/the/fixtures/folder' features: commonFixtures: 'NameOfTheCommonFileFixtures.yaml' # Path to the file used to add the common fixture with the fixtures generated authenticationEmails: ^admin: 'super_admin@test.com' # ['route_regex' => 'email_used'] ^user: 'user@test.com' # ... httpResponses: # http responses used with test expectations get: 200 put: 204 patch: 204 post: 201 delete: 204