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
.ymlfiles in thewebdirectory - 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.