The Drupal Rector project has PHPUnit tests, extending the testing suite functionality provided by Rector. This allows the project to have confidence in the written Rector rules. To run the unit tests, there are different system requirements than if you ran Drupal Rector against your Drupal site.
To run the PHPUnit tests:
- Clone your fork of the repository
- Run
composer install
- Run
php vendor/bin/phpunit
See the .github/workflows/phpunit.yml
workflow for an example.
For now, please see the example in tests/src/Rector/Deprecation/DatetimeStorageTimezoneRector
.
GitHub Action workflows test that this package can be installed. See the workflows in .github/workflows
.
The functional test takes the rector_examples
directory in this package and copies it to a Drupal code base.
The workflow then runs vendor/bin/rector process web/modules/custom/rector_examples
to apply all of the appropriate Rector rules.
Then, the diff
command is run to verify the changes match the expected results as found in the rector_examples_updated
directory.
To add new tests, create a sample file in rector_examples
and a copy with the expected changes into rector_examples_updated
.