Antonchik
@Antonchik
Программирую на HTML

Как запустить codecaption unit тесты на yii2 advanced?

Здравствуйте. Хочу запустить unit тесты но не как не получается,
выдает эту ошибку:
[yii\base\InvalidConfigException]
  The "id" configuration for the Application is required.


Единственный конфиг который я изменил это frontend/config.php
Вот его содержимое:
return [
    'language' => 'en-US',
    'components' => [
        'db' => [
            'dsn' => 'mysql:host=localhost;dbname=mytest',
            'username' => 'root',
            'password' => '',
        ],
        'mailer' => [
            'useFileTransport' => true,
        ],
        'urlManager' => [
            'showScriptName' => true,
        ],
    ],
];


Содержимое файла frontend\unit\_bootstrap.php:
$application = new yii\web\Application(__DIR__. '/../../config/frontend/unit.php');


Содержимое файла frontend\codeception.yml:
namespace: tests\codeception\frontend
actor: Tester
paths:
    tests: .
    log: _output
    data: _data
    helpers: _support
settings:
    bootstrap: _bootstrap.php
    suite_class: \PHPUnit_Framework_TestSuite
    colors: true
    memory_limit: 1024M
    log: true
config:
    # the entry script URL (with host info) for functional and acceptance tests
    # PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
    test_entry_url: http://localhost:8080/frontend/web/index-test.php
modules:
  config:
    Db:
      dsn: 'mysql:host=localhost;dbname=mytest'
      user: 'root'
      password: ''


Содержимое файла frontend\unit.suite.yml:
class_name: WebGuy
modules:
  enabled:
    - Db


Тесты запускаю командой codecept run unit из папки tests\codeception\frontend

Так же phpstorm не видит класс Unit
b0f9d01b00784c46812640be9202140e.png
  • Вопрос задан
  • 934 просмотра
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
ну в данном случае у Вас ошибка четко говорит что не задан идентификатор приложения в конфиге, который обязателен для работы
Ответ написан
Antonchik
@Antonchik Автор вопроса
Программирую на HTML
Ошибку решил тем что добавил параметр id в конфиг /frontend/config/unit.php

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 . '/frontend/config/main.php'),
    require(YII_APP_BASE_PATH . '/frontend/config/main-local.php'),
    require(dirname(__DIR__) . '/config.php'),
    require(dirname(__DIR__) . '/config-local.php'),
    require(dirname(__DIR__) . '/unit.php'),
    require(__DIR__ . '/config.php'),
    [
        'id' => 'app-frontend',
        'basePath' => dirname(__DIR__),
    ]
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы