first commit.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use Commands\Migration;
|
||||
use Override;
|
||||
use PHPUnit\Framework\TestCase as PHPunitTestCase;
|
||||
|
||||
abstract class TestCase extends PHPunitTestCase
|
||||
{
|
||||
private static Migration $db_migration;
|
||||
|
||||
#[Override]
|
||||
public static function setUpBeforeClass(): void
|
||||
{
|
||||
// Garantiza que ningún test corra contra la base de datos real.
|
||||
self::assertSame('sqlite', DB_TYPE, 'Tests must run on SQLite.');
|
||||
self::assertSame(':memory:', DB_NAME, 'Tests must run on an in-memory database.');
|
||||
|
||||
static::$db_migration = new Migration(verbose: false);
|
||||
static::$db_migration->ensureDatabaseExists();
|
||||
// fresh() limpia el historial de migraciones y vuelve a aplicarlas: en
|
||||
// modo aislado, el proceso padre también ejecuta este hook y deja el
|
||||
// archivo de control poblado, por lo que migrate() se saltaría el
|
||||
// esquema sobre la base :memory: vacía del hijo.
|
||||
static::$db_migration->fresh();
|
||||
}
|
||||
|
||||
#[Override]
|
||||
public static function tearDownAfterClass(): void
|
||||
{
|
||||
// Ejecutar el rollback de las migraciones
|
||||
static::$db_migration->rollback();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user