Working with tests¶
UI Patterns is tested using both Behat and PHPUnit.
Both test suites uses a fully functional Drupal site to run tests against. To build the test site perform the following steps in the module’s root:
$ composer install
$ cd tests
$ composer install
$ cd drupal
$ ../vendor/bin/drush si standard -y --db-url=mysql://USER:PASS@HOST/DATABASE
$ ../vendor/bin/drush en ui_patterns_test -y
The test site will then be available in ./tests/drupal.
In order to test the UI Patterns module itself we symlink the full repository in a Composer post-install hook to
./tests/drupal/modules/contrib/ui_patterns so that the target site can correctly install the module.
See ./tests/composer.json for more info.
We also use a test module and a test theme, available respectively in ./tests/ui_patterns_test and
./tests/ui_patterns_test_theme, both extensions expose test patterns and test configuration and are great
resources to discover UI Patterns’ possibilities.
PHPUnit¶
To execute PHPUnit tests run the following command in the module’s root:
$ ./vendor/bin/phpunit --bootstrap ./tests/vendor/autoload.php tests/src/PhpUnit
Behat¶
To run Behat tests perform the following steps:
- Copy
./behat.yml.distin./behat.ymland change its parameters according to your local setup.- Run:
./vendor/bin/behat
Working with the test site¶
When working locally with the target site it might be handy to disable the Twig cache as follows:
- Copy
./tests/drupal/sites/example.settings.local.phpinto./tests/drupal/sites/default/settings.local.php- Un-comment lines including
settings.local.phpin./tests/drupal/sites/default/settings.php- Disable Twig cache by adding the following lines to
./tests/drupal/sites/development.services.ymland clear the cache.
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
ATTENTION
Since the repository symlinks itself in the target site you MUST disable test directory scanning when
disabling Twig cache by setting the following value into your ./tests/drupal/sites/default/settings.local.php:
$settings['extension_discovery_scan_tests'] = FALSE;