elph-studio / laravel-testing-tools
Laravel Testing Tools
Installs: 79
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/elph-studio/laravel-testing-tools
Requires
- php: ^8.5
- mockery/mockery: 1.*
- opay-dev/php-linting-tools: ^1.6
- phpunit/phpunit: 12.*
- roave/security-advisories: dev-latest
Requires (Dev)
- laravel/framework: 12.*
README
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:
