laravel-testing-tools maintained by elph-studio
Elephant Studio :: Laravel testing tools
This package provides preconfigured PHP Unit and Linting Tools packages for Laravel projects.
It also includes vendor testing tool that can be run during GitHub workflow to disable PR merging if some vendors do not meet production requirements.
PHP Unit configuration contains
- Test Cases
- Configuration file
- Works with default tests directories (these must be created):
tests/Unittests/Integrationtests/Feature
- Also works with Laravel Modules (not mandatory):
Module/*/Test/UnitModule/*/*/Test/UnitModule/*/Test/IntegrationModule/*/*/Test/IntegrationModule/*/Test/FeatureModule/*/*/Test/Feature
- Configuration file will be used only if there is no local configuration file
config/phpunit.xml
- Works with default tests directories (these must be created):
Linting tools configuration contains
-
- Slevoman Coding Standards - included
- Squizlabs PHP CodeSniffer Standards - included
- OPAY Coding Stardards - included
- Moxio PHP CodeSniffer Standards - removed due to low maintainability and recurring conflicts with upper mentioned libraries latest versions
-
These rules sets will be used only if local rules set are not found in
config/phpcs_rules.xmlandconfig/csfixer.php
Installation & running
Install
composer require --dev elph-studio/laravel-testing-tools
Run PHP Unit tests:
vendor/bin/unit
Run PHP Unit tests to test by specific filter:
vendor/bin/unit someSpecificTestOrTestsCategory
Run Linting tools (run both PHP CS and PHP CS Fixer):
vendor/bin/lint
Run Linting tools to test exact file or directory:
vendor/bin/lint path/to/file/or/directory
Automatic Lint fixing:
vendor/bin/lint fix
Automatic Lint fixing of specific file or directory:
vendor/bin/lint fix path/to/file/or/directory
Running Vendors Validator in GitHub Workflow
.env
VENDORS_VALIDATOR_URL=https://raw.githubusercontent.com/elph-studio/laravel-testing-tools/refs/heads/main/src/Helper/vendors_validator.php
VENDORS_VALIDATOR_SKIP=roave/security-advisories
workflow.yml
vendors:
name: Validate vendors
runs-on: ubuntu-latest
steps:
- name: Checkout required files
uses: actions/checkout@v4
with:
sparse-checkout: |
.github/.env
composer.lock
sparse-checkout-cone-mode: false
- name: Read .env file
uses: xom9ikk/dotenv@v2.3.0
with:
path: .github/
- name: Download vendors_validator
run: |
curl -sSL ${{ env.VENDORS_VALIDATOR_URL }} \
-o vendors_validator.php
- name: Validate vendors
run: php vendors_validator.php --skip=${{ env.VENDORS_VALIDATOR_SKIP }}
Failed workflow example: