Недавно я начал внедрять тестирование кода в существующем приложении Yii2.
Структура тестов сильно изменилась, но после создания нового проекта и использования файлов по умолчанию в моем существующем приложении я смог запустить тесты. К сожалению каждый тест ошибки следующим образом:
6) HomeCest: Check open
Test tests/functional/HomeCest.php:checkOpen
[yii\base\InvalidConfigException] The "basePath" property must be set.Scenario Steps:
1. $I->amOnPage("/") at tests/functional/HomeCest.php:11
#1 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/View.php:222
#2 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/View.php:150
#3 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/Controller.php:378
#4 /Users/rrbot/Sites/MYSITE/frontend/controllers/SiteController.php:114
#5 frontend\controllers\SiteController->actionIndex
#6 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/InlineAction.php:55
#7 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/Controller.php:154
#8 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/base/Module.php:454
#9 /Users/rrbot/Sites/MYSITE/vendor/yiisoft/yii2/web/Application.php:100
#10 /Users/rrbot/Sites/MYSITE/vendor/symfony/browser-kit/Client.php:315
Мой интерфейс / config / test-local.php выглядит так:
<?php
// config/test-local.php
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/main.php'),
require(__DIR__ . '/main-local.php'),
[
'id' => 'app-tests',
'basePath' => dirname(__DIR__),
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=mydb',
'username' => 'someser',
'password' => 'somepass',
'charset' => 'utf8',
],
]
]
);
return $config;
Итак, как вы можете видеть, я объявляю basePath, фактически заново объявляя его так же, как и в main.php.
Задача ещё не решена.
Других решений пока нет …