Используя два разных контекста — behat.yml

Я хочу создать два разных файла Context — FeatureContext.php и ModuleContext.php и использовать их для запуска тестов behat (файлы .feature).

Я не хочу огромный монолитный файл FeatureContext.php; поэтому я распределяю функции в двух файлах.

В стандартном FeatureContext.php я определил некоторые пользовательские функции, такие как:

class FeatureContext extends MinkContext{
/**
* Wait for site to load
*
* @Then /I wait for the site to load$/
*/
public function iWait(){
$this->getSession()->wait();
}
}

В ModuleContext.php я хочу вызвать методы следующим образом: ClassName :: MethodName (например, MinkContext :: fixStepArgument вместо $ this-> fixStepArgument) Я определил функции

class ModuleContext extends FeatureContext implements Context{
/**
* Plugin availability
*
* @Then /^"([^"]*)" plugin is available for "([^"]*)"$/
*/
public function pluginIs AvailableFor(){
$pluginActivationField = MinkContext::getSession->getPage->find('css selector')->getText()
}
}

Внутри behat.yml я определил два контекста в профиле по умолчанию
Существует 3 разных профиля, которые обозначают разные среды тестирования. Один из профилей prod имеет другой пароль для администратора, поэтому разделы FeatureContext и WordPressContext повторяются под этим профилем.

#behat.yml
default:
suites:
default:
contexts:
- FeatureContext:
parameters:
screen_shot_path: 'path to directory'
theme_url: ''
users:
admin:' admin password'
local:'local password'

- WordPressContext:
parameters:
screen_shot_path: 'path to directory'
theme_url: ''
users:
admin:' admin password'
local:'local password'

Когда я пытаюсь запустить тест (файл .feature), я получаю следующую ошибку:

Шаг «/ ^ Я жду, пока сайт загрузит $ /», уже определен в ModuleContext :: iWaitForTheSiteToLoad ()

FeatureContext :: iWaitForTheSiteToLoad ()
ModuleContext :: iWaitForTheSiteToLoad ()

Я использую PHPStorm. Как мне реализовать два разных контекста?

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]