Skip to content

Testing expectations

This legacy documentation was migrated from the Legacy Docs site.

As part of our Development and contribution processes and standards we state our aim to cover all new functionality with automated tests:

Developers on this project will embrace the philosophy of using automated tests, consisting of both unit tests (which test the functionality of classes at a low level) and functional tests (which test the functionality of Drupal systems at a higher level, usually involving web output).

This documentation aims to help developers run tests locally, debug existing tests and write new tests.

Running tests in Lando from the host

Assuming you have the standard lando setup that is deployed with LocalGov Drupal, you should be able to run tests from your host machine with the following command.

lando phpunit
This command on its own will run all the LocalGov Drupal tests in the following directories:

web/profiles/contrib/localgov web/modules/contrib/localgov_*

Runing tests inside Lando directly

It seems that the phpunit output can be more detailed ifyou run it inside lando. To do this

lando ssh
phpunit

The rest of this documentation will assume that you are shelled into the Lando container.

Running specific tests

To run tests from a given module or folder you can specify a path. For example to run all tests in the localgov_subsite module, you can with:

phpunit web/modules/contrib/localgov_subsites

Note: this will run all the tests under that path, which in this case will include the tests under web/modules/contrib/localgov_subsites/modules/localgov_subsites_paragraphs/tests too.

Running the following command will restirct the tests to just those under the localgov_subsites/tests directory.

phpunit web/modules/contrib/localgov_subsites/tests

To run a specific test, you can use the --filter command.

phpunit --filter=myTestName

phpunit.xml.dist

PHPunit will use the default configuration specified in the phpunit.xml.dist file that comes with the distrubution.

phpunit.xml

You can create a phpunit.xml file in your project root directory and phpunit will use this instead of the phpunit.xml.dist. This is useful if you want to change the database connection or set a directory to ouput html of failed tests.