Načtení config.neon v bootstrapu testu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
petr.pavel
Člen | 535
+
0
-

Ahoj lidi,
začínám s unit testováním a pokouším se po vzoru /tests v Nette rozjet vlastní.

Protože chci využívat služby/továrny a autowiring DI kontejneru, potřebuji v bootstrapu testu kontejner vyrobit podle config.neon. Jenže to, co mi při běžném chodu aplikace funguje, mi při volání „bokem“ config compiler odmítá s chybou

G:\>php.exe "pokus.php" -p php-cgi.exe
PHP Fatal error:  Uncaught exception 'InvalidStateException' with message
'Found sections 'common', 'production', 'development' in configuration, but corresponding extensions are missing.' in G:\adresar\libs\Nette\Config\Compiler.php:115

Tohle je můj pokus.php:

require dirname(__FILE__) . '/../../libs/Nette/loader.php';

$configurator = new NConfigurator;
$configurator->setTempDirectory(dirname(__FILE__) . '/../../temp');
$configurator->addConfig(dirname(__FILE__).'/../../app/config/config.neon', false);

$container = $configurator->createContainer();

Config vám podle mě ukazovat nemusím. Jak říkám, při normálním spuštění aplikace přes prohlížeč vše funguje, bootstrap aplikace je běžný ze sandboxu.

Ve fóru jsem narazil na pár vláken, kde diskutující přesně takovýhle postup doporučovali, třeba kvůli připojení k db mimo Nette s použitím konfigurace v config.neon.

Nechápu, co je u mě jinak. Nette s prefixy, 2.0.3, cache promazána.

Editoval petr.pavel (7. 5. 2012 14:14)

Jan Jakeš
Člen | 177
+
0
-

Používáš konfigurační sekce, ale přitom je při načítání konfiguračního souboru vypínáš parametrem false. Viz. https://api.nette.org/…gurator.html#…, neboli:

$configurator->addConfig(dirname(__FILE__).'/../../app/config/config.neon');
petr.pavel
Člen | 535
+
0
-

Ajta! Máš pravdu, díky.

Myslel jsem, že vypínám produkční režim (k tomu slouží konstanta, už vím).