Проблема с инициализацией db

Всё про тестирование в Yii 2.0
Ответить
Аватара пользователя
Begemot
Сообщения: 34
Зарегистрирован: 2013.10.30, 16:14

Проблема с инициализацией db

Сообщение Begemot »

В yii2-starter-kit на vagrant запускаю тесты

Код: Выделить всё

vendor/bin/codecept run
часть тестов проходит нормельно
а вот в

Код: Выделить всё

[tests\backend]: tests from /app/tests/backend 
выдает

Код: Выделить всё

Failed to instantiate component or class "db".
Проанализировав код я пришел к выводу что в этом случае не переобределился параметр

Код: Выделить всё

$db класса yii\test\DbFixture
Вопрос куда еще копать и что сделать чтобы тесты за работали?
Аватара пользователя
Begemot
Сообщения: 34
Зарегистрирован: 2013.10.30, 16:14

Re: Проблема с инициализацией db

Сообщение Begemot »

Не получается запустить функциональные тесты, все валится на этапе загрузки фикстур ФикстурХелпером

Код: Выделить всё

Instance.php line 139:

  Failed to instantiate component or class "db".

Код: Выделить всё

In Container.php line 428:

  Class db does not exist
Не понятно чего ему не хватает, если нужны какие-то еще данные я сообщу

Абсолютно не понятно что идет не так, так же непонятно как посмотреть какую конфигурацию в итоге загрузил codeception для приложения Yii.
Пытаюсь выполнить тесты Yii2 starter-kit

Код: Выделить всё

./vendor/bin/codecept run --debug -c tests/backend functional./vendor/bin/codecept run --debug -c tests/backend functional
Codeception PHP Testing Framework v2.4.0
Powered by PHPUnit 7.1.5 by Sebastian Bergmann and contributors.

  [Db] Connected to main

In Instance.php line 139:

  [yii\base\InvalidConfigException]
  Failed to instantiate component or class "db".


Exception trace:
 yii\di\Instance::ensure() at /app/vendor/yiisoft/yii2/test/DbFixture.php:41
 yii\test\DbFixture->init() at /app/vendor/yiisoft/yii2/test/ActiveFixture.php:60
 yii\test\ActiveFixture->init() at /app/vendor/yiisoft/yii2/base/BaseObject.php:109
 yii\base\BaseObject->__construct() at n/a:n/a
 ReflectionClass->newInstanceArgs() at /app/vendor/yiisoft/yii2/di/Container.php:383
 yii\di\Container->build() at /app/vendor/yiisoft/yii2/di/Container.php:156
 yii\di\Container->get() at /app/vendor/yiisoft/yii2/BaseYii.php:349
 yii\BaseYii::createObject() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:208
 tests\common\_support\FixtureHelper->createFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:145
 tests\common\_support\FixtureHelper->getFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:112
 tests\common\_support\FixtureHelper->unloadFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:134
 tests\common\_support\FixtureHelper->initFixtures() at /app/tests/common/_support/FixtureHelper.php:50
 tests\common\_support\FixtureHelper->_beforeSuite() at /app/vendor/codeception/codeception/src/Codeception/Subscriber/Module.php:38
 Codeception\Subscriber\Module->beforeSuite() at /app/vendor/symfony/event-dispatcher/EventDispatcher.php:212
 Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() at /app/vendor/symfony/event-dispatcher/EventDispatcher.php:44
 Symfony\Component\EventDispatcher\EventDispatcher->dispatch() at /app/vendor/codeception/codeception/src/Codeception/SuiteManager.php:156
 Codeception\SuiteManager->run() at /app/vendor/codeception/codeception/src/Codeception/Codecept.php:189
 Codeception\Codecept->runSuite() at /app/vendor/codeception/codeception/src/Codeception/Codecept.php:158
 Codeception\Codecept->run() at /app/vendor/codeception/codeception/src/Codeception/Command/Run.php:466
 Codeception\Command\Run->runSuites() at /app/vendor/codeception/codeception/src/Codeception/Command/Run.php:361
 Codeception\Command\Run->execute() at /app/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at /app/vendor/symfony/console/Application.php:886
 Symfony\Component\Console\Application->doRunCommand() at /app/vendor/symfony/console/Application.php:262
 Symfony\Component\Console\Application->doRun() at /app/vendor/symfony/console/Application.php:145
 Symfony\Component\Console\Application->run() at /app/vendor/codeception/codeception/src/Codeception/Application.php:108
 Codeception\Application->run() at /app/vendor/codeception/codeception/codecept:42

In Container.php line 428:

  [ReflectionException (-1)]
  Class db does not exist


Exception trace:
 ReflectionClass->__construct() at /app/vendor/yiisoft/yii2/di/Container.php:428
 yii\di\Container->getDependencies() at /app/vendor/yiisoft/yii2/di/Container.php:364
 yii\di\Container->build() at /app/vendor/yiisoft/yii2/di/Container.php:156
 yii\di\Container->get() at /app/vendor/yiisoft/yii2/di/Instance.php:167
 yii\di\Instance->get() at /app/vendor/yiisoft/yii2/di/Instance.php:137
 yii\di\Instance::ensure() at /app/vendor/yiisoft/yii2/test/DbFixture.php:41
 yii\test\DbFixture->init() at /app/vendor/yiisoft/yii2/test/ActiveFixture.php:60
 yii\test\ActiveFixture->init() at /app/vendor/yiisoft/yii2/base/BaseObject.php:109
 yii\base\BaseObject->__construct() at n/a:n/a
 ReflectionClass->newInstanceArgs() at /app/vendor/yiisoft/yii2/di/Container.php:383
 yii\di\Container->build() at /app/vendor/yiisoft/yii2/di/Container.php:156
 yii\di\Container->get() at /app/vendor/yiisoft/yii2/BaseYii.php:349
 yii\BaseYii::createObject() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:208
 tests\common\_support\FixtureHelper->createFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:145
 tests\common\_support\FixtureHelper->getFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:112
 tests\common\_support\FixtureHelper->unloadFixtures() at /app/vendor/yiisoft/yii2/test/FixtureTrait.php:134
 tests\common\_support\FixtureHelper->initFixtures() at /app/tests/common/_support/FixtureHelper.php:50
 tests\common\_support\FixtureHelper->_beforeSuite() at /app/vendor/codeception/codeception/src/Codeception/Subscriber/Module.php:38
 Codeception\Subscriber\Module->beforeSuite() at /app/vendor/symfony/event-dispatcher/EventDispatcher.php:212
 Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() at /app/vendor/symfony/event-dispatcher/EventDispatcher.php:44
 Symfony\Component\EventDispatcher\EventDispatcher->dispatch() at /app/vendor/codeception/codeception/src/Codeception/SuiteManager.php:156
 Codeception\SuiteManager->run() at /app/vendor/codeception/codeception/src/Codeception/Codecept.php:189
 Codeception\Codecept->runSuite() at /app/vendor/codeception/codeception/src/Codeception/Codecept.php:158
 Codeception\Codecept->run() at /app/vendor/codeception/codeception/src/Codeception/Command/Run.php:466
 Codeception\Command\Run->runSuites() at /app/vendor/codeception/codeception/src/Codeception/Command/Run.php:361
 Codeception\Command\Run->execute() at /app/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at /app/vendor/symfony/console/Application.php:886
 Symfony\Component\Console\Application->doRunCommand() at /app/vendor/symfony/console/Application.php:262
 Symfony\Component\Console\Application->doRun() at /app/vendor/symfony/console/Application.php:145
 Symfony\Component\Console\Application->run() at /app/vendor/codeception/codeception/src/Codeception/Application.php:108
 Codeception\Application->run() at /app/vendor/codeception/codeception/codecept:42

run [-o|--override OVERRIDE] [-e|--ext EXT] [--report] [--html [HTML]] [--xml [XML]] [--tap [TAP]] [--json [JSON]] [--colors] [--no-colors] [--silent] [--steps] [-d|--debug] [--coverage [COVERAGE]] [--coverage-html [COVERAGE-HTML]] [--coverage-xml [COVERAGE-XML]] [--coverage-text [COVERAGE-TEXT]] [--coverage-crap4j [COVERAGE-CRAP4J]] [--coverage-phpunit [COVERAGE-PHPUNIT]] [--no-exit] [-g|--group GROUP] [-s|--skip SKIP] [-x|--skip-group SKIP-GROUP] [--env ENV] [-f|--fail-fast] [--no-rebuild] [--] [<suite> [<test>]]

PHP Fatal error:  Uncaught RuntimeException: Command Did Not Finish Properly in /app/vendor/codeception/codeception/src/Codeception/Subscriber/ErrorHandler.php:101
Stack trace:
#0 [internal function]: Codeception\Subscriber\ErrorHandler->shutdownHandler()
#1 {main}
  thrown in /app/vendor/codeception/codeception/src/Codeception/Subscriber/ErrorHandler.php on line 101
Может тесты устарели для актуальной версии Codeception?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Проблема с инициализацией db

Сообщение ElisDN »

FixtureHelper устарел два года назад.

А ошибка в том, что в 'components' тестового конфига не нашёлся компонент 'db'.
Аватара пользователя
Begemot
Сообщения: 34
Зарегистрирован: 2013.10.30, 16:14

Re: Проблема с инициализацией db

Сообщение Begemot »

Спасибо, про db в конфигах я понял, но он там есть, судя по коду, а проверить что в итоге собралось в конфиг возможности нет.
То что FixtureHelper не совсем актуален я тоже на ходил но не было ясно на сколько.
Теперь все встало на свои места и будет логичным переделать тесты с и пользованием возможностей по генерации codectption
Ответить