Codeception/AspectMock

Cannot was not found by locator

gglazewski opened this issue · 3 comments

Using Yii2,

As soon as I extend my controllers with a custom class or implement custom interface I get following errors:

Class app\controllers\BaseController was not found by locator
Class app\models\MyInterface was not found by locator

Unfortunately, to keep my tests working I had to remove my interface. But I cannot remove my BaseController.

My Kernel is defined like so in __bootstrap.php

require __DIR__ .'/../vendor/autoload.php';
$kernel = Kernel::getInstance();
$kernel->init([
    'includePaths' => [
        __DIR__ . '/../service',
        __DIR__ . '/../controllers',
        __DIR__ . '/../model',
        __DIR__ . '/../vendor/yiisoft',
    ],
    'excludePaths' => [
        __DIR__ . '/../tests'
    ],
    'cacheDir'  => '/tmp/aopcache',
]);

$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/base/ErrorException.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/base/UnknownClassException.php');

Is this a known problem or am I doing something obviously wrong?

I created SO question as well:
https://stackoverflow.com/questions/59751752/error-class-was-not-found-by-locator-when-running-tests

Yii2 does not use a Kernel, so this error is likely not related to Yii

Replace Yii2 autoloader by composer autoloader.