Behat отключить адаптивные функции

В настоящее время я немного застрял с функциями behat + responsive, которые появляются / исчезают в заданных точках останова на экране.

Первым делом нужно создать теги для фильтрации функций для устройств. Например, @iphone или @mobile и так далее.

Это становится очень грязным, если вы тестируете на нескольких устройствах с разными размерами экрана / ориентацией. Тогда мы получим: @iphone5c_hor @iphone5c_vert @iphone5s_hor @iphone5s_vert @samsung..._vert

Моя вторая попытка заключалась в том, чтобы пометить функции тегом минимальной ширины, например. min-width:700 и использовать контекст функции и веб-драйвер, чтобы определить, поддерживает ли текущий браузер функцию, которую я пытаюсь выполнить. Это работает до этого момента:

/**
 * @BeforeFeature
 *
 * @param \Behat\Behat\Hook\Scope\BeforeFeatureScope|BeforeScenarioScope $scope
 */
public function prepareForTheScenario(BeforeScenarioScope $scope)
{
 if (!$this->checkWindowWidth($scope)) {
 // TODO: skip scenario here
 }
}

Есть ли у кого-нибудь опыт с такими динамическими тестами, я иду совершенно неправильным путем, и если нет, то как я могу заставить это работать?


person gries    schedule 10.03.2015    source источник


Ответы (2)


Я решил это сам, создав Behat-Extension, который поддерживает мои потребности. (https://github.com/2bepublished/BehatResponsiveFeaturesExtension)

person gries    schedule 11.03.2015

У меня были похожие проблемы, и мне пришлось установить размер окна браузера, чтобы избавиться от моей проблемы. Интересно, поможет ли это вам (проверьте, пожалуйста).

Я сделал следующее:

Просто установите размер окна на что-то большее, чтобы меню не сжималось при тестировании. Вы можете изменить размер экрана с 1024X768 на любой другой по вашему желанию.

#symfony/src/Site/CommonBundle/Features/Context/FeatureContext.php

/**
 * @BeforeStep
 */
public function beforeStep()
{
    $this->getSession()->resizeWindow(1024, 768, 'current');
}
person BentCoder    schedule 11.03.2015
comment
Привет, извините, это не вариант для меня, так как у нас есть как минимум 20 различных версий интерфейса на основе пользовательского интерфейса, и цель состоит в том, чтобы протестировать их, чтобы мы могли быть уверены, что интерфейс работает на устройствах. - person gries; 11.03.2015
comment
Если вам нужна эта функция, взгляните на это расширение: github.com/2bepublished/BehatResponsiveFeaturesExtension - person gries; 11.03.2015