Es gibt in Symfony die Möglichkeit mehrere Umgebungen (Environments) anzulegen und verschiedenartig zu konfigurieren. Das Problem ist, dass die automatisierten Tests immer gegen die Test-Umgebung und somit auch gegen die Test-Konfiguration gemacht werden.
Wie kann man sicher gehen, dass die produktive Konfiguration valide ist und dies mit einem automatisierten Test absichern?
Die Antwort ist sehr einfach, sollte eine Umgebungs-Konfiguration syntaktisch falsch sein, schlägt der Test fehl:
<?php
namespace App\Tests\System;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class BootKernelTest extends WebTestCase
{
/**
* @return array
*/
public function dataProviderTestBootKernel(): array
{
return [
'dev' => ['dev'],
'test' => ['test'],
'prod' => ['prod'],
];
}
/**
* the test would fail if the environment config is wrong
*
* @dataProvider dataProviderTestBootKernel
*
* @param string $environment
* @return void
*/
public function testBootKernel(string $environment)
{
$kernel = $this->bootKernel(['environment' => $environment]);
$this->assertNotEmpty($kernel);
}
}
