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); } }