wp-cli/wp-cli-tests
WP-CLI testing framework for WP-CLI packages. Adds Composer scripts and tooling to run PHPUnit, Behat, PHPCS, and linting with optional cross-platform Behat config and custom PHPCS rulesets for consistent CI-ready testing.
composer require --dev wp-cli/wp-cli-tests) but requires manual configuration (Behat, PHPCS, etc.), which may conflict with Laravel’s existing tooling (e.g., Laravel Pint for linting, Laravel’s PHPUnit setup).wp_cli_test), which could clash with Laravel’s migrations if not isolated (e.g., via Docker or separate schemas).wp_cli_test database avoid conflicts with Laravel’s test database (e.g., laravel_test)?composer prepare-tests) add significant CI runtime?laravel/testbench for WordPress plugins) or Pest + Laravel Dusk for a unified stack?wp commands triggering Laravel jobs).| WP-CLI Tests | Laravel Equivalent | Integration Notes |
|---|---|---|
| Behat (BDD) | Laravel Dusk | Behat is more verbose; Dusk is Laravel-native. |
| PHP_CodeSniffer | Laravel Pint | PHPCS rules may conflict with Pint. |
| PHPUnit | Laravel’s PHPUnit helpers | Can coexist but may require config tweaks. |
composer prepare-tests |
Laravel’s php artisan test:prepare |
Custom DB setup needed for isolation. |
composer require --dev wp-cli/wp-cli-tests.wp post create).jobs:
laravel-tests:
runs-on: ubuntu-latest
steps:
- run: composer test # Laravel's test script
wp-cli-tests:
runs-on: ubuntu-latest
steps:
- run: composer prepare-tests
- run: composer behat || composer behat-rerun
laravel_test DB).wp_cli_test DB).docker-compose.yml snippet:
services:
laravel_db:
image: mysql:8.0
environment:
MYSQL_DATABASE: laravel_test
wp_cli_db:
image: mysql:8.0
environment:
MYSQL_DATABASE: wp_cli_test
composer.json constraints for WP-CLI and Laravel packages.wp-cli/wp-cli-tests's prepare-tests).composer behat || composer behat-rerun).@skip-* tags to exclude DB-specific tests if needed.How can I help you explore Laravel packages today?