diff --git a/RoboFile.php b/RoboFile.php index ae97b94e59..df48d9f9a6 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -453,22 +453,32 @@ class RoboFile extends \Robo\Tasks { } function qaPhpstan() { + $dir = __DIR__; + $task = implode(' ', [ + 'WP_ROOT="' . getenv('WP_ROOT') . '"', + 'php -d memory_limit=2G', + "$dir/tasks/phpstan/vendor/bin/phpstan analyse ", + '--level 5', + ]); + // PHPStan must be run out of main plugin directory to avoid its autoloading // from vendor/autoload.php where some dev dependencies cause conflicts. - $dir = __DIR__; return $this->collectionBuilder() ->taskExec('rm -rf ' . __DIR__ . '/vendor/goaop') ->taskExec('rm -rf ' . __DIR__ . '/vendor/nikic') ->taskExec('cd ' . __DIR__ . ' && ./tools/vendor/composer.phar dump-autoload') - ->taskExec( - 'WP_ROOT="' . getenv('WP_ROOT') . '" ' . - 'php -d memory_limit=2G ' . - "$dir/tasks/phpstan/vendor/bin/phpstan analyse " . - "--configuration $dir/tasks/phpstan/phpstan.neon " . - '--level 5 ' . - "$dir/lib" - ) + + // lib + ->taskExec($task) + ->arg("$dir/lib") ->dir(__DIR__ . '/tasks/phpstan') + + // tests + ->taskExec($task) + ->rawArg('--configuration=phpstan-tests.neon') + ->arg("$dir/tests/unit") + ->dir(__DIR__ . '/tasks/phpstan') + ->taskExec('cd ' . __DIR__ . ' && ./tools/vendor/composer.phar install') ->run(); } diff --git a/tasks/phpstan/phpstan-tests.neon b/tasks/phpstan/phpstan-tests.neon new file mode 100644 index 0000000000..72baacbb3c --- /dev/null +++ b/tasks/phpstan/phpstan-tests.neon @@ -0,0 +1,13 @@ +parameters: + mailpoetDir: %rootDir%/../../../../.. + tmpDir: ../../temp/phpstan + bootstrap: bootstrap.php + autoload_files: + - %mailpoetDir%/vendor/autoload.php + - %mailpoetDir%/vendor/codeception/codeception/autoload.php + - %mailpoetDir%/vendor/codeception/verify/src/Codeception/function.php + - %mailpoetDir%/vendor/codeception/verify/src/Codeception/Verify.php + autoload_directories: + - %mailpoetDir%/tests/unit + dynamicConstantNames: + - WP_DEBUG diff --git a/tests/unit/_bootstrap.php b/tests/unit/_bootstrap.php index 5e0f3a6519..60a377bab0 100644 --- a/tests/unit/_bootstrap.php +++ b/tests/unit/_bootstrap.php @@ -1,7 +1,9 @@