acceptance не идут через index-test

Всё про тестирование в Yii 2.0
Ответить
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

acceptance не идут через index-test

Сообщение Chelobaka »

Здравтсвуйте,

Есть у меня тесты acceptance и unit.
acceptance ни в какую не хотят идти через index-test. Unit работают исправно. Сколько конфиги не менял результат тот-же, acceptance идут через index.php

Код: Выделить всё

suite_namespace: frontend\tests\unit
actor: UnitTester
modules:
    enabled:
        - Yii2:
              configFile: 'config/test.php'
              part: [init, orm, fixtures, email]
              transaction: false
              cleanup: false

        - Asserts

Если указать scriptFile: index-test.php то всё равно входной скрипт в логах 'SCRIPT_NAME' => '/index.php'
Как я не пытался скрип ни в какую не идет через index-test.php.

Варианты c .php и без, в кавычках, с /
scriptFile: index-test.php
entryScript: index-test.php
entryUrl: http://site.net/index-test.php

Мало того, при добавлении одного из вышенаписанных параметров URl:to начал формировать неправлильные url, с точкой в начале запроса.

Код: Выделить всё


suite_namespace: frontend\tests\acceptance
actor: AcceptanceTester
modules:
    enabled:
        - WebDriver:
              url: http://site.net/
              browser: chrome
              port: 4444
        - Yii2:
              configFile: 'config/test.php'
              part: [init, orm, fixtures, email]
              transaction: false
              cleanup: false
              scriptFile: index-test.php
              entryScript: index-test.php
              entryUrl: http://site.net/index-test.php
  
codeception.yml во fronend

Код: Выделить всё

namespace: frontend\tests
actor_suffix: Tester
paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
modules:
    config:
        Yii2:
            configFile: 'config/test-local.php'
            cleanup: true
Буду рад любой помощи.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: acceptance не идут через index-test

Сообщение yiijeka »

В браузере вы сами можете войти на index-test.php?
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: acceptance не идут через index-test

Сообщение Chelobaka »

yiijeka писал(а): 2019.09.20, 15:45 В браузере вы сами можете войти на index-test.php?
Да. Срабатывает 302 редирект на /en
Похоже в этом беда.
Как обучить UrlManager использовать index-test в качестве scriptUrl?
Попробовал в cofig заменить с scriptUrl'=>'/index.php', на scriptUrl'=>'/index-test.php' , но результат тот же.

Код: Выделить всё

class LangUrlManager extends UrlManager
{
    public function createUrl($params)
    {
        if( isset($params['lang_id']) ){
            //Если указан идентефикатор языка, то делаем попытку найти язык в БД,
            //иначе работаем с языком по умолчанию
            $lang = Lang::findOne($params['lang_id']);
            if( $lang === null ){
                $lang = Lang::getDefaultLang();
            }
            unset($params['lang_id']);
        } else {
            //Если не указан параметр языка, то работаем с текущим языком
            $lang = Lang::getCurrent();
        }

        $url = parent::createUrl($params);

        return $url == '/' ? '/'.$lang->url : '/'.$lang->url.$url;
    }
}
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: acceptance не идут через index-test

Сообщение Chelobaka »

yiijeka писал(а): 2019.09.20, 15:45 В браузере вы сами можете войти на index-test.php?
Спасибо за хороший вопрос. Оказалось что проблема банально в том что был редирект. Отключил и всё заработало. 'enablePrettyUrl' => false, и rules в []
UrlManager заменил на страндартный.
Ответить