Codeception config to create console app not web app

I have a bunch of tests in tests/codeception/console/unit which I obviously want to test as console apps not as web apps.

However, in yii2-codeception I found that this is config driven:

yii2-codeception/TestCase.php LINE 115




if (!isset($config['class'])) {

                $config['class'] = 'yii\web\Application';

            }



I then tried changing my config for console tests from




return yii\helpers\ArrayHelper::merge(

    require(YII_APP_BASE_PATH . '/common/config/main.php'),

    require(YII_APP_BASE_PATH . '/common/config/main-local.php'),

    require(YII_APP_BASE_PATH . '/console/config/main.php'),

    require(YII_APP_BASE_PATH . '/console/config/main-local.php'),

    require(dirname(__DIR__) . '/config.php'),

    require(dirname(__DIR__) . '/unit.php'),

    [

    	

    ]

);



to




return yii\helpers\ArrayHelper::merge(

    require(YII_APP_BASE_PATH . '/common/config/main.php'),

    require(YII_APP_BASE_PATH . '/common/config/main-local.php'),

    require(YII_APP_BASE_PATH . '/console/config/main.php'),

    require(YII_APP_BASE_PATH . '/console/config/main-local.php'),

    require(dirname(__DIR__) . '/config.php'),

    require(dirname(__DIR__) . '/unit.php'),

    [

    	'class' => 'yii\console\application'

    ]

);



but when I run the test I get

Codeception PHP Testing Framework v2.0.8

Powered by PHPUnit 4.4.0 by Sebastian Bergmann.

[yii\base\UnknownPropertyException]

Setting unknown property: yii\console\Application::class

What is the correct way to configure codeception to run a console app please?

1 Like