Skip to content

Commit

Permalink
add(test) enable phpunit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
connorhu committed Jan 19, 2024
1 parent 6edd425 commit 356960a
Show file tree
Hide file tree
Showing 6 changed files with 135 additions and 20 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 11 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand All @@ -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"]
}
31 changes: 31 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/10.0/phpunit.xsd"
colors="true"
bootstrap="tests/bootstrap.php"
failOnRisky="true"
failOnWarning="true"
stderr="true">
<php>
<ini name="error_reporting" value="32767" />
<ini name="intl.default_locale" value="en" />
<ini name="intl.error_level" value="0" />
<ini name="memory_limit" value="-1" />
<ini name="apc.enable_cli" value="1" />

<env name="MEMCACHED_HOST" value="localhost" />
</php>

<testsuites>
<testsuite name="Symfony Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>


<coverage>
<include>
<directory>./lib/</directory>
</include>
</coverage>
</phpunit>
31 changes: 13 additions & 18 deletions test/bin/test
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,17 @@
# Configuration
#
dependencyPreferences='highest'
skipPHPVersions='php8'

# Commands
#
dcexec="docker-compose exec -u `id -u`:`id -g`"
installSubmodule='git submodule update --checkout --recursive --force'
composerUpdate='composer update --prefer-dist --no-suggest --optimize-autoloader'
symfonyTestSuite='data/bin/symfony symfony:test --trace'
composerUpdate='/usr/local/bin/composer update --prefer-dist --no-suggest --optimize-autoloader'

# Parse arguments
#
phpVersions="${1-}"
dependencyPreferences="${2-${dependencyPreferences}}"
phpTestRuntime="${3-${symfonyTestSuite}}"

script ()
{
Expand All @@ -34,17 +31,16 @@ script ()
echo $0 ${1} ${2}
echo
${dcexec} ${1} php data/bin/check_configuration.php
${dcexec} ${1} php ${phpTestRuntime}
${dcexec} ${1} php /usr/local/bin/composer test
}

scriptAll ()
{
for dependencyPreference in ${dependencyPreferences}
do
install_${dependencyPreference}

for phpVersion in ${phpVersions}
do
install_${dependencyPreference} ${phpVersion}
script ${phpVersion} ${dependencyPreference}
done
done
Expand All @@ -54,33 +50,32 @@ fetchAllPHPVersions ()
{
docker-compose 2>/dev/null ps --services --filter status=running \
| grep php \
| sort \
| grep -v ${skipPHPVersions}
| sort
}

install_highest ()
{
${installSubmodule} --remote
${dcexec} composer ${composerUpdate}
${dcexec} ${1} git config --global --add safe.directory /app
${dcexec} ${1} ${installSubmodule} --remote
${dcexec} ${1} ${composerUpdate}
}

install_lowest ()
{
reset_submodules
reset_submodules ${1}

${installSubmodule}
${dcexec} composer ${composerUpdate} --prefer-lowest
${dcexec} ${1} ${installSubmodule}
${dcexec} ${1} ${composerUpdate} --prefer-lowest
}

reset_submodules ()
{
git submodule deinit --force --quiet -- .

git submodule init
${dcexec} ${1} 'git submodule deinit --force --quiet -- .'
${dcexec} ${1} 'git submodule init'
}

echo '+ docker-compose build'
docker-compose up -d --build --remove-orphans > /dev/null
docker-compose up -d --build --remove-orphans

test x"" != x"${phpVersions}" || {
phpVersions=`fetchAllPHPVersions`
Expand Down
73 changes: 73 additions & 0 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?php

/*
* This file is part of the symfony package.
* (c) Fabien Potencier <[email protected]>
*
* 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', '&amp;');
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'));
}

0 comments on commit 356960a

Please sign in to comment.