See https://github.com/lullabot/drainpipe first.
This is a composer package containing the testing helpers for Drainpipe i.e.
should be included in require-dev
and not installed in production
environments.
Runs all static tests i.e. those which don't require a running Drupal environment.
The static tests consist of:
Runs security checks for composer packages against the FriendsOfPHP Security Advisory Database and Drupal core and contributed modules against Drupal's Security Advisories.
- YAML lint on
.yml
files in theweb
directory - Twig lint on files in
web/modules
,web/profiles
, andweb/themes
composer validate
These cannot currently be customised. See #9.
Runs PHPStan with
mglaman/phpstan-drupal on
web/modules/custom
, web/themes/custom
, and web/sites
.
Runs PHPUnit tests in web/modules/custom
, web/themes/custom
, and
web/sites
.
Runs PHPCS with Drupal coding standards provided by Coder module.
Runs all functional tests i.e. those which require a running Drupal environment.
Verifies that exported configuration matches the current configuration in Drupal's database.
Runs functional browser tests with Nightwatch.
If you are using DDEV, Drainpipe will have created a
.ddev/docker-compose.selenium.yaml
file that provides Firefox and Chrome as
containers, as well as an example test in
test/nightwatch/example.nightwatch.js
.
Nightwatch tests must have the suffix .nightwatch.js
to be recognised by
the test runner.
Whilst tests are running, you can view them in realtime through your browser.
http://localhost:7900 for Chrome http://localhost:7901 for Firefox
The password for all environments is secret
.
Attempts to autofix any issues discovered by tests. Currently, this is just fixing PHPCS errors with PHPCBF.