Simplified and united configs for tests

This commit is contained in:
Alejandro Celaya 2019-01-26 09:42:01 +01:00
parent 87ba7a7179
commit c4af1471f0
7 changed files with 65 additions and 52 deletions

View file

@ -111,7 +111,7 @@
],
"test:unit": "phpdbg -qrr vendor/bin/phpunit --order-by=random --coverage-php build/coverage-unit.cov",
"test:unit:ci": "phpdbg -qrr vendor/bin/phpunit --order-by=random --coverage-php build/coverage-unit.cov --coverage-clover=build/clover.xml --coverage-xml=build/coverage-xml --log-junit=build/phpunit.junit.xml",
"test:db": "phpdbg -qrr vendor/bin/phpunit --order-by=random -c phpunit-db.xml --coverage-php build/coverage-db.cov",
"test:db": "APP_ENV=test phpdbg -qrr vendor/bin/phpunit --order-by=random -c phpunit-db.xml --coverage-php build/coverage-db.cov",
"test:pretty": [
"@test",

View file

@ -6,18 +6,8 @@ use Doctrine\ORM\Tools\Console\ConsoleRunner;
use Interop\Container\ContainerInterface;
use Zend\ServiceManager\ServiceManager;
// If the "--test" flag was provided, we are on a test environment
$isTest = false;
foreach ($_SERVER['argv'] as $i => $arg) {
if ($arg === '--test') {
unset($_SERVER['argv'][$i]);
$isTest = true;
break;
}
}
/** @var ContainerInterface|ServiceManager $container */
$container = $isTest ? include __DIR__ . '/test-container.php' : include __DIR__ . '/container.php';
$container = include __DIR__ . '/container.php';
$em = $container->get(EntityManager::class);
return ConsoleRunner::createHelperSet($em);

View file

@ -1,14 +0,0 @@
<?php
declare(strict_types=1);
$container = include __DIR__ . '/container.php';
$container->setAllowOverride(true);
$config = $container->get('config');
$config['entity_manager']['connection'] = [
'driver' => 'pdo_sqlite',
'path' => realpath(sys_get_temp_dir()) . '/shlink-tests.db',
];
$container->setService('config', $config);
return $container;

View file

@ -1,26 +1,19 @@
<?php
declare(strict_types=1);
namespace ShlinkioTest\Shlink\Common;
use Psr\Container\ContainerInterface;
use ShlinkioTest\Shlink\Common\DbTest\DatabaseTestCase;
use Symfony\Component\Process\Process;
use function file_exists;
use function touch;
// Create an empty .env file
if (! file_exists('.env')) {
touch('.env');
}
$shlinkDbPath = realpath(sys_get_temp_dir()) . '/shlink-tests.db';
if (file_exists($shlinkDbPath)) {
unlink($shlinkDbPath);
}
/** @var ContainerInterface $container */
$container = require __DIR__ . '/../test-container.php';
$container = require __DIR__ . '/../container.php';
// Create database
$process = new Process(['vendor/bin/doctrine', 'orm:schema-tool:create', '--no-interaction', '-q', '--test']);
$process->inheritEnvironmentVariables()
->mustRun();
DatabaseTestCase::$em = $container->get('em');
$container->get(TestHelper::class)->createTestDb();
DbTest\DatabaseTestCase::$em = $container->get('em');

View file

@ -1,12 +0,0 @@
<?php
declare(strict_types=1);
return [
'zend-expressive-swoole' => [
'swoole-http-server' => [
'port' => 9999,
],
],
];

View file

@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace ShlinkioTest\Shlink;
use Zend\ServiceManager\Factory\InvokableFactory;
use function realpath;
use function sys_get_temp_dir;
return [
'zend-expressive-swoole' => [
'swoole-http-server' => [
'port' => 9999,
],
],
'dependencies' => [
'factories' => [
Common\TestHelper::class => InvokableFactory::class,
],
],
'entity_manager' => [
'connection' => [
'driver' => 'pdo_sqlite',
'path' => realpath(sys_get_temp_dir()) . '/shlink-tests.db',
],
],
];

View file

@ -0,0 +1,25 @@
<?php
declare(strict_types=1);
namespace ShlinkioTest\Shlink\Common;
use Symfony\Component\Process\Process;
use function file_exists;
use function realpath;
use function sys_get_temp_dir;
use function unlink;
class TestHelper
{
public function createTestDb(): void
{
$shlinkDbPath = realpath(sys_get_temp_dir()) . '/shlink-tests.db';
if (file_exists($shlinkDbPath)) {
unlink($shlinkDbPath);
}
$process = new Process(['vendor/bin/doctrine', 'orm:schema-tool:create', '--no-interaction', '-q']);
$process->inheritEnvironmentVariables()
->mustRun();
}
}