Передача url из acceptance.suite.yml в Cest файл

Как, используя Codeception (v 2.1.4), можно получить url конкретного environment’a из файла acceptance.suite.yml для использования его в Cest файлах?

Например, в acceptance.suite.yml хранятся настройки для какого-то проекта (проектов несколько):

demo_project:
    modules:
        config:
            WebDriver:
                url: http://demo.project.com
                env: demo_project

Cest файл:


    /**
     * @env demo_project
     * @group smoke
     */
    public function checkDemo(WebGuy $I, \Page\demo\Links $links)
    {
            $I->amOnPage($link);
    }

Как в $link можно передать url из acceptance.suite.yml?

Попробуйте создать helper

    $webDriver = $this->getModule('WebDriver');
    $webDriver->_getConfig();

а уже в Cest файле вызывайте нужный метод.


Например

Метод в helper’е

public function getAcceptanceUrls()
{
/** @var WebDriver $webDriver */
$webDriver = $this->getModule(‘WebDriver’);
return $webDriver->_getConfig();
}

ваш Cest файл:

public function checkDemo(WebGuy $I)
{
$link = $I->getAcceptanceUrls();
$I->amOnPage($link);
}

$link по идее будет массивом, но думаю как уже распарсить вы решите сами

Вообще, странный у вас кейс. Что вам мешает использовать в одном .yml файле несколько env: и в котором для каждого будет свой урл?

1 лайк