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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?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 ); } } |