@Serrrgio

Как обойти зависимость от yii\web\Request при unit test?

Приложение на основе basic. Используется компонент dragonjet\opengraph\OpenGraph.
Пытаюсь запустить стандартные тесты, начал с unit. Первая же ошибка:
1) tests\codeception\unit\models\ContactFormTest::testContact
yii\base\InvalidConfigException: Unable to determine the request URI.
#1  C:\dev\OpenServer524\domains\mysite\vendor\yiisoft\yii2\web\Request.php:769


Как правильно это обойти?
  • Вопрос задан
  • 971 просмотр
Пригласить эксперта
Ответы на вопрос 2
SamDark
@SamDark
Yii2 core team
Можно попробовать запустить юнит через phpunit, а не через CodeCeption.
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
немного некропостинга
конфиг
paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
actor_suffix: Tester
settings:
    bootstrap: _bootstrap.php
    colors: false
    memory_limit: 1024M
extensions:
    enabled:
        - Codeception\Extension\RunFailed


файл
unit.suite.yml
# Codeception Test Suite Configuration
#
# Suite for unit or integration tests.

class_name: UnitTester
modules:
    enabled:
        - Asserts
        - Yii2:
            part: [orm, fixtures, email]
            configFile: 'tests/_config/unit.php'

файл unit.php
\yii\helpers\FileHelper::createDirectory(\Yii::getAlias('@tests/_output/assets'));

return [
    'id' => 'test-console',
    'class' => 'yii\web\Application',
    'basePath' => \Yii::getAlias('@tests'),
    'runtimePath' => \Yii::getAlias('@tests/_output'),
    'components' => [
        'request' => [
            'cookieValidationKey' => 'wefJDF8s',
            'scriptFile' => \Yii::getAlias('@tests/_output/index.php'),
            'url' => '/',      # задаем  и ошибки не будет
            'scriptUrl' => '/index.php',
        ],
        'assetManager' => [
            'bundles' => [
                // отрубаем публикацию ассетов
                'yii\grid\GridViewAsset' => false,
                'yii\web\JqueryAsset' => false,
            ],
        ],
    ],
];
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы