From 96d8b3da5e9b676f90978b9a31dfdfbd8adb467c Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bjaskulski@protonmail.com> Date: Thu, 21 Sep 2023 22:43:42 +0200 Subject: [PATCH] tests: improve tests organization Move all tests to one directory as no integration tests are executed. Modernize packages used. Simplify configuration. Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com> --- composer.json | 26 ++++++------- phpcs.xml.dist | 37 +++++++++++++++++++ phpunit.xml.dist | 7 ++++ .../Renderer/TestSimplePhpRenderer.php | 0 .../Renderer/templates/some_template.php | 0 .../{unit => }/Resolver/TestChainResolver.php | 4 +- tests/{unit => }/Resolver/TestDirResolver.php | 4 +- .../Resolver/TestWpThemeResolver.php | 4 +- .../Resolver/templates/some_template.php | 0 tests/{unit => }/TestPluginViewBuilder.php | 4 +- tests/integration/bootstrap.php | 28 -------------- tests/{unit => }/stub/template/file.php | 0 tests/unit/bootstrap.php | 6 --- 13 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 phpcs.xml.dist create mode 100644 phpunit.xml.dist rename tests/{unit => }/Renderer/TestSimplePhpRenderer.php (100%) rename tests/{unit => }/Renderer/templates/some_template.php (100%) rename tests/{unit => }/Resolver/TestChainResolver.php (95%) rename tests/{unit => }/Resolver/TestDirResolver.php (93%) rename tests/{unit => }/Resolver/TestWpThemeResolver.php (96%) rename tests/{unit => }/Resolver/templates/some_template.php (100%) rename tests/{unit => }/TestPluginViewBuilder.php (93%) delete mode 100644 tests/integration/bootstrap.php rename tests/{unit => }/stub/template/file.php (100%) delete mode 100644 tests/unit/bootstrap.php diff --git a/composer.json b/composer.json index 9aabcbf..79afa9c 100644 --- a/composer.json +++ b/composer.json @@ -8,26 +8,24 @@ } ], "require": { - "php": ">=7.0" + "php": ">=7.1 | ^8" }, "require-dev": { - "phpunit/phpunit": "<7", - "wp-coding-standards/wpcs": "^0.14.1", - "squizlabs/php_codesniffer": "^3.0.2", - "mockery/mockery": "*", - "10up/wp_mock": "*", - "wimg/php-compatibility": "^8" + "phpunit/phpunit": "^7 | ^8 | ^9", + "wpdesk/wp-code-sniffer": "^1", + "mockery/mockery": "^1", + "10up/wp_mock": "^1" }, "autoload": { "psr-4": {"WPDesk\\View\\": "src/"} }, - "autoload-dev": { - }, "scripts": { - "phpcs": "phpcs", - "phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never", - "phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage", - "phpunit-integration": "phpunit --configuration phpunit-integration.xml --coverage-text --colors=never", - "phpunit-integration-fast": "phpunit --configuration phpunit-integration.xml --no-coverage" + "test": "phpunit", + "phpcs": "phpcs" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } } } diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..ba9325b --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<ruleset name="WordPress Coding Standards for WP Desk Plugin"> + + <!-- + ############################################################################# + COMMAND LINE ARGUMENTS + https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml + ############################################################################# + --> + + <!-- Only check PHP files. --> + <arg name="extensions" value="php"/> + + <!-- Show progress, show the error codes for each message (source). --> + <arg value="sp"/> + + <!-- Check up to 8 files simultaneously. --> + <arg name="parallel" value="8"/> + + <!-- Cache outcomes for better performance. Remember to add the file to .gitignore. --> + <arg name="cache" value="./.phpcs-cache"/> + + <!-- + ############################################################################# + USE THE WPDeskCS RULESET + ############################################################################# + --> + + <!-- This value should be aligned with WordPress support version declared in plugin header --> + <config name="minimum_supported_wp_version" value="6.0"/> + + <!-- Set value aligned with supported PHP Version for PHPCompatibilityWP check. --> + <config name="testVersion" value="7.1-"/> + + <rule ref="WPDeskPlugin"/> + +</ruleset> diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..1a6fcff --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,7 @@ +<phpunit bootstrap="vendor/autoload.php"> + <testsuites> + <testsuite name="Unit Tests"> + <directory prefix="Test" suffix=".php">./tests/</directory> + </testsuite> + </testsuites> +</phpunit> diff --git a/tests/unit/Renderer/TestSimplePhpRenderer.php b/tests/Renderer/TestSimplePhpRenderer.php similarity index 100% rename from tests/unit/Renderer/TestSimplePhpRenderer.php rename to tests/Renderer/TestSimplePhpRenderer.php diff --git a/tests/unit/Renderer/templates/some_template.php b/tests/Renderer/templates/some_template.php similarity index 100% rename from tests/unit/Renderer/templates/some_template.php rename to tests/Renderer/templates/some_template.php diff --git a/tests/unit/Resolver/TestChainResolver.php b/tests/Resolver/TestChainResolver.php similarity index 95% rename from tests/unit/Resolver/TestChainResolver.php rename to tests/Resolver/TestChainResolver.php index 3d5d510..0e32b1f 100644 --- a/tests/unit/Resolver/TestChainResolver.php +++ b/tests/Resolver/TestChainResolver.php @@ -10,12 +10,12 @@ class TestChainResolver extends \PHPUnit\Framework\TestCase const RESOLVE_METHOD_NAME = 'resolve'; - public function setUp() + public function setUp(): void { \WP_Mock::setUp(); } - public function tearDown() + public function tearDown(): void { \WP_Mock::tearDown(); } diff --git a/tests/unit/Resolver/TestDirResolver.php b/tests/Resolver/TestDirResolver.php similarity index 93% rename from tests/unit/Resolver/TestDirResolver.php rename to tests/Resolver/TestDirResolver.php index c8c79f3..088bc09 100644 --- a/tests/unit/Resolver/TestDirResolver.php +++ b/tests/Resolver/TestDirResolver.php @@ -9,12 +9,12 @@ class TestDirResolver extends \PHPUnit\Framework\TestCase const TEMPLATE_FILE = 'some_template.php'; const TEMPLATE_SUBDIR = 'templates'; - public function setUp() + public function setUp(): void { \WP_Mock::setUp(); } - public function tearDown() + public function tearDown(): void { \WP_Mock::tearDown(); } diff --git a/tests/unit/Resolver/TestWpThemeResolver.php b/tests/Resolver/TestWpThemeResolver.php similarity index 96% rename from tests/unit/Resolver/TestWpThemeResolver.php rename to tests/Resolver/TestWpThemeResolver.php index 635aeeb..ab400a5 100644 --- a/tests/unit/Resolver/TestWpThemeResolver.php +++ b/tests/Resolver/TestWpThemeResolver.php @@ -9,7 +9,7 @@ class TestThemeResolver extends \PHPUnit\Framework\TestCase const TEMPLATE_FILE = 'some_template.php'; const TEMPLATE_SUBDIR = 'templates'; - public function setUp() + public function setUp(): void { \WP_Mock::setUp(); @@ -43,7 +43,7 @@ class TestThemeResolver extends \PHPUnit\Framework\TestCase ]); } - public function tearDown() + public function tearDown(): void { \WP_Mock::tearDown(); } diff --git a/tests/unit/Resolver/templates/some_template.php b/tests/Resolver/templates/some_template.php similarity index 100% rename from tests/unit/Resolver/templates/some_template.php rename to tests/Resolver/templates/some_template.php diff --git a/tests/unit/TestPluginViewBuilder.php b/tests/TestPluginViewBuilder.php similarity index 93% rename from tests/unit/TestPluginViewBuilder.php rename to tests/TestPluginViewBuilder.php index fcefdb7..6c25585 100644 --- a/tests/unit/TestPluginViewBuilder.php +++ b/tests/TestPluginViewBuilder.php @@ -4,7 +4,7 @@ use WPDesk\View\PluginViewBuilder; class TestPluginViewBuilder extends \PHPUnit\Framework\TestCase { - public function setUp() { + public function setUp(): void { \WP_Mock::setUp(); \WP_Mock::userFunction('trailingslashit', [ @@ -14,7 +14,7 @@ class TestPluginViewBuilder extends \PHPUnit\Framework\TestCase { ]); } - public function tearDown() + public function tearDown(): void { \WP_Mock::tearDown(); } diff --git a/tests/integration/bootstrap.php b/tests/integration/bootstrap.php deleted file mode 100644 index a422fd9..0000000 --- a/tests/integration/bootstrap.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php - -ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL); -ini_set('display_errors', '1'); -ini_set('display_startup_errors', '1'); - -require_once __DIR__ . '/../../vendor/autoload.php'; - -// disable xdebug backtrace -if ( function_exists( 'xdebug_disable' ) ) { - xdebug_disable(); -} - -if ( getenv( 'PLUGIN_PATH' ) !== false ) { - define( 'PLUGIN_PATH', getenv( 'PLUGIN_PATH' ) ); -} else { - define( 'PLUGIN_PATH', __DIR__ . DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR ); -} - -require_once( getenv( 'WP_DEVELOP_DIR' ) . '/tests/phpunit/includes/functions.php' ); - -tests_add_filter( 'muplugins_loaded', function () { -}, 100 ); - -putenv('WP_TESTS_DIR=' . getenv( 'WP_DEVELOP_DIR' ) . '/tests/phpunit'); -require_once( getenv( 'WC_DEVELOP_DIR' ) . '/tests/bootstrap.php' ); - -do_action('plugins_loaded'); \ No newline at end of file diff --git a/tests/unit/stub/template/file.php b/tests/stub/template/file.php similarity index 100% rename from tests/unit/stub/template/file.php rename to tests/stub/template/file.php diff --git a/tests/unit/bootstrap.php b/tests/unit/bootstrap.php deleted file mode 100644 index 575b33b..0000000 --- a/tests/unit/bootstrap.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -/** - * PHPUnit bootstrap file - */ - -require_once __DIR__ . '/../../vendor/autoload.php'; -- GitLab