From 10c20e622f5f6fa7e6da17ee89216365c300c069 Mon Sep 17 00:00:00 2001 From: Karoly Gossler Date: Fri, 17 Feb 2023 00:31:29 +0100 Subject: [PATCH] add(test) enable phpunit tests --- .github/workflows/continuous-integration.yml | 5 +- .gitignore | 3 + composer.json | 12 +++- phpunit.xml.dist | 31 +++++++++ tests/bootstrap.php | 73 ++++++++++++++++++++ 5 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 phpunit.xml.dist create mode 100644 tests/bootstrap.php diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 561845967..b158692ef 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -57,5 +57,8 @@ jobs: - name: Run Check configuration run: php data/bin/check_configuration.php - - name: Run Tests + - name: Run Lime Tests run: php data/bin/symfony symfony:test --trace + + - name: Run PHPUnit Tests + run: php vendor/bin/phpunit diff --git a/.gitignore b/.gitignore index 3c17d4767..0644b20d6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ lib/plugins/sfDoctrinePlugin/test/functional/fixtures/log/ /vendor /composer.lock .php-cs-fixer.cache +.phpunit.result.cache +phpunit.xml +/tests/fixtures/symfony/log diff --git a/composer.json b/composer.json index a424d6ea6..c3664aab3 100755 --- a/composer.json +++ b/composer.json @@ -8,7 +8,9 @@ "swiftmailer/swiftmailer": "~5.2 || ^6.0" }, "require-dev": { - "psr/log": "*" + "psr/log": "*", + "phpunit/phpunit": "^9.6", + "symfony/phpunit-bridge": "^7.0" }, "autoload": { "files": ["autoload.php"] @@ -26,5 +28,13 @@ "replace": { "lexpress/symfony1": "^1.5" }, + "scripts": { + "test": [ + "@test:lime", + "@test:phpunit" + ], + "test:lime": "php data/bin/symfony symfony:test --trace", + "test:phpunit": "phpunit" + }, "bin": ["data/bin/symfony"] } diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 000000000..41c3f6314 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + ./tests/ + + + + + + + ./lib/ + + + diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 000000000..92582ad54 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Bridge\PhpUnit\DeprecationErrorHandler; + +// setup expected test environment (per check_configuration.php) +ini_set('magic_quotes_runtime', 'off'); +ini_set('session.auto_start', 'off'); +ini_set('arg_separator.output', '&'); +ini_set('allow_url_fopen', 'on'); + +require_once __DIR__.'/../vendor/autoload.php'; + +$libDir = realpath(__DIR__.'/../lib'); + +require_once __DIR__.'/../lib/config/sfConfig.class.php'; +sfConfig::set('sf_symfony_lib_dir', $libDir); + +require_once $libDir.'/autoload/sfCoreAutoload.class.php'; +sfCoreAutoload::register(); + +require_once $libDir.'/util/sfToolkit.class.php'; +sfConfig::set('sf_test_cache_dir', sys_get_temp_dir().'/sf_test_project'); + +// TODO enable later require_once __DIR__.'/fixtures/symfony/config/ProjectConfiguration.class.php'; + +// remove all test cache +sf_unit_test_shutdown(); + +// create test cache dir +$sf_root_dir = sys_get_temp_dir().'/sf_test_project'; +@mkdir($sf_root_dir, 0777, true); + +register_shutdown_function('sf_unit_test_shutdown'); + +function sf_unit_test_shutdown() +{ + $sf_root_dir = sys_get_temp_dir().'/sf_test_project'; + if (is_dir($sf_root_dir)) { + sfToolkit::clearDirectory($sf_root_dir); + @rmdir($sf_root_dir); + } + + $sessions = glob(sys_get_temp_dir().'/sessions*'); + $tmp_files = glob(sys_get_temp_dir().'/sf*'); + + $files = array_merge(empty($sessions) ? array() : $sessions, empty($tmp_files) ? array() : $tmp_files); + foreach ($files as $file) { + if (is_dir($file)) { + sfToolkit::clearDirectory($file); + @rmdir($file); + } else { + @unlink($file); + } + } +} + +// Helper for cross platform testcases that validate output +function fix_linebreaks($content) +{ + return str_replace(array("\r\n", "\n", "\r"), "\n", $content); +} + +if ('disabled' !== getenv('SYMFONY_DEPRECATIONS_HELPER')) { + DeprecationErrorHandler::register(getenv('SYMFONY_DEPRECATIONS_HELPER')); +}