Předání závislostí do preseteru
- Ripper
- Člen | 56
Dobrý den,
začal jsem s testováním a narazil jsem na jednu věc se kterou si nevím rady. Mám následující test –
function testSomething()
{
$presenterFactory = $this->container->getByType('Nette\Application\IPresenterFactory');
$presenter = $presenterFactory->createPresenter('Admin:Uzivatel');
}
Používám ale všeljaká rozšíření a křičí to následující –
Exited with error code 255 (expected 0)
Kdyby\Doctrine\DBALException: could not find driver
in Kdyby\Doctrine\Connection.php(243)
in Kdyby\Doctrine\Connection.php(77) Kdyby\Doctrine\Connection->resolveException()
in ORM\Persisters\BasicEntityPersister.php(930) Kdyby\Doctrine\Connection->executeQuery()
in Doctrine\ORM\EntityRepository.php(181) Doctrine\ORM\Persisters\BasicEntityPersister->loadAll()
in Doctrine\ORM\EntityRepository.php(164) Doctrine\ORM\EntityRepository->findBy()
in Application\Security\BaseAuthorizator.php(42) Doctrine\ORM\EntityRepository->findAll()
in cache\_Nette.Configurator\_-4ffb175b0ab714d1f5cd3cb7394d49c4.php(321) Scribe\Security\BaseAuthorizator->__construct()
in [internal function]SystemContainer->createService__96_Scribe_Security_BaseAuthorizator()
in Nette\DI\Container.php(145) call_user_func_array()
in Nette\DI\Container.php(94) Nette\DI\Container->createService()
in cache\_Nette.Configurator\_-4ffb175b0ab714d1f5cd3cb7394d49c4.php(1437) Nette\DI\Container->getService()
in [internal function]SystemContainer->createServiceUser()
in Nette\DI\Container.php(145) call_user_func_array()
in Nette\DI\Container.php(94) Nette\DI\Container->createService()
in Nette\DI\Container.php(177) Nette\DI\Container->getService()
in Nette\DI\Helpers.php(102) Nette\DI\Container->getByType()
in Nette\DI\Container.php(264) Nette\DI\Helpers::autowireArguments()
in Nette\DI\Container.php(244) Nette\DI\Container->callMethod()
in Nette\Application\PresenterFactory.php(61) Nette\DI\Container->callInjects()
in framework.dev\tests\ExampleTest.phpt(31) Nette\Application\PresenterFactory->createPresenter()
in [internal function]Test\ExampleTest->testSomething()
in Tester\Framework\TestCase.php(109) call_user_func_array()
in Tester\Framework\TestCase.php(91) Tester\TestCase->runTest()
in Tester\Framework\TestCase.php(39) Tester\TestCase->runMethod()
in framework.dev\tests\ExampleTest.phpt(37) Tester\TestCase->run()
(previous) PDOException: could not find driver
Mohl by někdo poradit? Díky.
- David Matějka
- Moderator | 6445
bude to asi tim, ze nette/tester implicitne nepouziva zadny konfiguracni
soubor php. Muzes to specifikovat pomoci parameteru -c
, treba
./run-tests.sh -c /etc/php5/cli/php.ini
Editoval matej21 (20. 3. 2014 18:56)
- Ripper
- Člen | 56
Paráda, děkuju, přes tohle jsem se už dostal a ještě potřebuji pravděpodobně změnit nějakým způsobem cestu k souborům, protože to směřuje místo do app/ do tests/ –
Nette\Application\UI\InvalidLinkException: Cannot load presenter 'Uzivatel', class 'App\Presenters\UzivatelPresenter' was not found in 'M:\==PROJEKTY==\framework.dev\tests/presenters/UzivatelPresenter.php'.
in Application\UI\Presenter.php(844)
in Application\UI\PresenterComponent.php(343) Nette\Application\UI\Presenter->createRequest()
in AdminModule\presenters\BasePresenter.php(46) Nette\Application\UI\PresenterComponent->redirect()
in Application\UI\Presenter.php(181) App\AdminModule\Presenters\BasePresenter->startup()
in framework.dev\tests\ExampleTest.phpt(37) Nette\Application\UI\Presenter->run()
in [internal function]Test\ExampleTest->testSomething()
in Tester\Framework\TestCase.php(109) call_user_func_array()
in Tester\Framework\TestCase.php(91) Tester\TestCase->runTest()
in Tester\Framework\TestCase.php(39) Tester\TestCase->runMethod()
in framework.dev\tests\ExampleTest.phpt(43) Tester\TestCase->run()
(previous) Nette\Application\InvalidPresenterException: Cannot load presenter 'Uzivatel', class 'App\Presenters\UzivatelPresenter' was not found in 'M:\==PROJEKTY==\framework.dev\tests/presenters/UzivatelPresenter.php'.
- David Matějka
- Moderator | 6445
registruj si ve svem bootstrap.php pro testy robotloader pro app slozku
- jiri.pudil
- Nette Blogger | 1029
Problém bude v tom, že Configurator při sestavování containeru do
parametru appDir (který následně využívá PresenterFactory) dosazuje složku
skriptu, ze kterého je volaný. Tzn. bootstrap musí být
v app/