Running Automated Tests¶
See the Drupal Documentation on PHPUnit in Drupal.
Setting up PhpUnit¶
Before you can use phpunit, you must first install the following:
composer require --dev -W phpspec/prophecy-phpunit drupal/core-dev
In ISLE, you need to make the database port available to PHPUnit. To do that, edit docker-compose.yml and find the section including image: islandora/mariadb[version number]. Shortly below is a labels: heading; set the value of the traefik.enable: to "true". Apply the changes made to the docker_compose.yml using docker compose up -d.
Follow the Configure PHPUnit and Create a directory for HTML output sections in Drupal Documentation on running phpunit tests to make a phpunit.xml file. Note that:
-
If you place the
phpunit.xmlfile in any directory other than[drupal root]/web/core, you need to change the 'bootstrap' in the<phpunit>tag near the top of the file to point to the relative or absolute location of the[drupal root]/web/corefolder. -
When setting the
SIMPLETEST_DBdatabase credentials in ISLE,- the default username and db_name are
drupal_default - your db_password can be found in
codebase/web/sites/default/settings.php
- the default username and db_name are
-
Unless you changed the default values, just swap out [password] for your actual db password in the following:
Running PHPUnit¶
If you are in the Drupal root directory (codebase on ISLE; the one containing web) and your phpunit.xml file is also in the Drupal root directory, use the following command to run phpunit for a single test file (here, Islandora's DeleteNodeWithMediaAndFile.php):
vendor/bin/phpunit web/modules/contrib/islandora/tests/src/Functional/DeleteNodeWithMediaAndFile.php
If your phpunit.xml is in a different directory, such as web/core, then use the -c flag to specify the path to the directory containing phpunit.xml:
vendor/bin/phpunit -c web/core web/modules/contrib/islandora/tests/src/Functional/DeleteNodeWithMediaAndFile.php