webfactory / symfony-application-tests
Contains several generic test scenarios that can be applied to Symfony 2 applications.
Installs: 11 502
Dependents: 1
Suggesters: 0
Security: 0
Stars: 10
Watchers: 7
Forks: 1
Open Issues: 4
Requires
- php: ^7.2.0
Requires (Dev)
- doctrine/common: ^2.4
- jms/security-extra-bundle: ^1.5
- phpunit/phpunit: ^7.4.0
- sensio/framework-extra-bundle: ^2.3.0 | ^3.0.0 | ^4.0.0 | 5.0.0
- symfony/browser-kit: ^3.4|^4.0
- symfony/config: ^3.4|^4.0
- symfony/dependency-injection: ^3.4|^4.0
- symfony/event-dispatcher: ^3.4|^4.0
- symfony/finder: ^3.4|^4.0
- symfony/form: ^3.4|^4.0
- symfony/framework-bundle: ^3.4|^4.0
- symfony/http-foundation: ^3.4|^4.0
- symfony/http-kernel: ^3.4|^4.0
- symfony/routing: ^3.4|^4.0
- symfony/templating: ^3.4|^4.0
- symfony/twig-bundle: ^3.4|^4.0
- symfony/validator: ^3.4|^4.0
- symfony/web-profiler-bundle: ^3.4|^4.0
- symfony/yaml: ^3.4|^4.0
- twig/twig: ^1.34|^2.0
README
Generic functional tests that can be applied to any Symfony application.
Applied Checks
The following checks are automatically applied as soon as the provided test cases are registered.
The checks are often simplistic, but they proofed to be helpful to find common configuration mistakes early.
Twig Templates
The tests ensure that the Twig templates are at least compilable and that all used functions are available.
Twig Extensions
Services that are registered as Twig extensions must at least implement the corresponding interface.
Event Subscribers
Registered event subscribers must implement the correct interfaces and all referenced listener methods must be callable.
Validators
Registered validators must implement the correct interface and in Symfony < 2.7, an alias must be provided in the configuration.
Form Types
Registered form types must implement the corresponding interface and aliases in configuration and implementation must match.
Role Annotations
It is ensured that only existing roles are referenced by @Secure annotations. The support for these annotations is provided by the SecurityExtraBundle, which does not belong to the Symfony core.
Example:
/**
* Check will fail if the role ROLE_ADMIN is not configured in the security.yml.
*
* @Secure(roles="ROLE_ADMIN")
*/
public function myAction()
{
// [...]
}
Services
Each application service must be at least instantiable (abstract and synthetic services are excluded).
Installation
Use the following command to install the package via Composer:
composer require --dev webfactory/symfony-application-tests
Usage
Simply add the tests directory to your phpunit.xml
:
<testsuites> <testsuite name="Application Test Suite"> <directory>vendor/webfactory/symfony-application-tests/src/Webfactory/Tests/</directory> </testsuite> </testsuites>
The library uses the functional testing infrastructure from Symfony. Therefore, you might have to configure your kernel directory:
<php> <server name="KERNEL_DIR" value="/path/to/your/app/" /> </php>
Details are available at http://symfony.com/doc/current/book/testing.html#your-first-functional-test.
Advanced Kernel Configuration
If the kernel directory configuration does not suit your needs, then you also have the opportunity to configure the class of the kernel:
<php> <server name="KERNEL_CLASS" value="My\TestKernel" /> </php>
To make this work, the kernel must be loadable by the class loader.
Changelog
0.5.3 -> 0.6.0
Removed constraints on form type aliases, which are deprecated since Symfony 2.8.
Credits, Copyright and License
This library was started at webfactory GmbH, Bonn.
Copyright 2014-2017 webfactory GmbH, Bonn. Code released under the MIT license.