Internals
May 7, 2024 ยท View on GitHub
This package can be tested globally or individually for each DBMS.
GitHub actions
All our packages have GitHub actions by default, so you can test your contribution in the cloud.
Note: We recommend pull requesting in draft mode until all tests pass.
Docker images
For greater ease, it's recommended to use Docker containers for each DBMS. For this, you can use the docker-compose.yml file in the root directory of each package.
For running the Docker containers, you can use the following command:
docker compose up -d
Global testing
The package is tested with PHPUnit. To run tests:
- Run all Docker containers for each dbms.
- Install the dependencies of the project with composer.
- Run the tests.
vendor/bin/phpunit
Individual testing
The package is tested with PHPUnit. To run tests:
- Run the Docker container for the dbms you want to test.
- Install the dependencies of the project with composer.
- Run the tests.
vendor/bin/phpunit --testsuite=Pgsql
Suites available:
- Mssql
- Mysql
- Oracle
- Pgsql
- Sqlite
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
Code style
Use Rector to make codebase follow some specific rules or use either newest or any specific version of PHP:
./vendor/bin/rector
Dependencies
This package uses composer-require-checker to check if
all dependencies are correctly defined in composer.json. To run the checker, execute the following command:
./vendor/bin/composer-require-checker