aklump / drupal-test
A solution for testing Drupal 7 using PhpUnit.
Requires
- php: >=7.0
- adbario/php-dot-notation: ^2.2
- aklump/manual-test: ^1.2
- aklump/phpunit-extras: ^2.0
- behat/mink-goutte-driver: ^1.2
- drupal/drupal-driver: ^1.4
- erusev/parsedown: ^1.7
- guzzlehttp/guzzle: ^6.3
- justinrainbow/json-schema: ^5.2
- kevinlebrun/password.php: ^0.1
- mockery/mockery: ^1.0
- mwojtowicz/phpunit-mink: ^2.2|^3.0
- php-mime-mail-parser/php-mime-mail-parser: ^4.0
- sunra/php-simple-html-dom-parser: ^1.5
- symfony/browser-kit: ^3.4
- symfony/yaml: ^3.0|^4.0
- wikimedia/composer-merge-plugin: ^1.4
This package is auto-updated.
Last update: 2024-10-29 05:22:47 UTC
README
Summary
This is a complete testing solution for using PhpUnit with Drupal websites. It provides Unit, Kernel, Client and End to End abstract test classes to use in writing your tests, a single test runner, testing for modules and themes, support for JsonSchema validation, as well as a set of guidelines and processes for better testing of Drupal modules and websites. All of this using a single test runner that can be divided by test suite or filtered by test class using normal PhpUnit options.
Finally, manual functional tests are supported as well.
Visit https://aklump.github.io/drupal-test for full documentation.
Quick Start
After installation (see below), follow instructions in the documentation (docs/index.html) to write and run tests.
Run All Tests
$ cd tests
$ export SIMPLETEST_BASE_URL=http://mysite.com; phpunit -c phpunit.xml
Run All Unit Tests
$ cd tests
$ phpunit -c phpunit.xml --testsuite Unit
Run All Kernel Tests
$ cd tests
$ phpunit -c phpunit.xml --testsuite Kernel
Run All Client Tests
$ cd tests
$ export SIMPLETEST_BASE_URL=http://mysite.com; phpunit -c phpunit.xml --testsuite Client
Run All End To End Tests
$ cd tests
$ export SIMPLETEST_BASE_URL=http://mysite.com; phpunit -c phpunit.xml --testsuite EndToEnd
Refer to the documentation for more info.
Configuration
See documentation for more information about configuration.
- Open tests/drupal_test_config.yml and setup autoloading.
- From tests run
composer update --lock
. - Open tests/phpunit.xml and add any JSON schema directories.
Requirements
- Composer
- PHPUnit
Contributing
If you find this project useful... please consider making a donation.
Installation
From inside the directory above the web root run this one-liner:
[ ! -d tests ] && git clone https://github.com/aklump/drupal-test.git tests && (cd tests && ./bin/install.sh) || echo "Installation error, nothing installed."
About the files in this project
The following files are considered core and should never be modified.
drupal_test.yml
drupal_test_bootstrap.php
composer.json
LICENSE
README.md
Additionally, do not add files to the following folders, which are replaced on every update. It is safe to add classes to src so long as you avoid src/DrupalTest.
docs
src/DrupalTest
Do not modify any of the files in bin, which are provided by this module. You may add your own files to bin, if you wish.
Update to the latest version
From inside the tests directory, run:
./bin/update.sh
This will copy over the core files from the latest repository, but leave the non-core files alone, namely phpunit.xml, which you most-likely will have modified.