t.me/atinfo_chat Telegram группа по автоматизации тестирования

Ошибка при выполнении functional теста в codeception


(Андрій Головко) #1

Здраствуйте, прошу помощи. Начинаю изучать тему тестирования. До момента подключения модуля yii2 - все работало. После подключения модуля появилась ошибка, тесты не проходят.
Содержимое файла codeception.yml:

    paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
actor_suffix: Tester
extensions:
    enabled:
        - Codeception\Extension\RunFailed
settings:
    bootstrap: _bootstrap.php
    memory_limit: 1024M
    colors: true
modules:
    enabled:
        #- Yii2
    config:
        #Yii2:
        #    configFile: 'config/test11.php'

Содержимое файла fuctional.suite.yml:

 actor: FunctionalTester
    modules:
        enabled:
            - Yii2:
               configFile: 'config/test.php'
               #entryUrl: 'https://site.loc/' 
    #recreateComponents: ['urlManager']
               #recreateComponents: ['urlManager']
            - \Helper\Functional
            - Filesystem`

Содержимое файла теста SitesCest.php:

namespace cabinet;
        
        use FunctionalTester;
        
        class SitesModelCest
        {
        public function _before(FunctionalTester $I)
            {
                
            }
        
            public function _after(FunctionalTester $I)
            {
        
            }
            public function viewSites(FunctionalTester $I)
            {
                $I->seeRecord('\app\models\Site', array('name' => 'agro'));
                $I->amOnPage('index-test.php?site/index');
            }
        }

Для метода $I->amOnPage (“я на странице”) пробовал разные форматы
ссылок, [’/’], ‘/’, ‘site/index’, [‘site/index’] - результат не
изменился

При запуске теста получаю ошибку:

[yii\base\InvalidArgumentException] Trying to copy a directory to itself or a subdirectory.

При попытке подключить модуль

- PhpBrowser:
            url: https://site.loc/

Получаю ошибку конфликта модулей

PhpBrowser module conflicts with Yii2

Использую версию Codeception 2.3.9

Если удалить метод $I->amOnPage, то тест пройдет, запись находит.

Что я делаю не так? Для модуля yii2 есть метод amOnPage и amOnRoute, но они у меня не отрабатывают.


(Андрій Головко) #2

Итак, ответ крылся, как я и ожидал, в простом, в конфиге. Надо в конфига для тестов (config/test.php) дописать строку, которая будет указывать на папку с assets-ами.

'aliases' => [
        '@webroot/assets' => __DIR__.'/../../assets',
    ],

В моем случае именно так, потому, что структура папок проекта, немного не типичная