Behat3 MinkExtension не может быть включен

я хочу добиться сделать снимок экрана с помощью Behat, Mink и SeleniumGrid

Но я получаю это ошибки:

Учитывая, что я иду в
«mySite.org/private» #
FeatureContext :: Визит ()
Экземпляр Mink не был установлен в классе контекста Mink. Вы включили расширение норки? (RuntimeException)

Instance Экземпляр Mink не был установлен в классе контекста Mink. Вы включили расширение норки? (RuntimeException)

@─ @AfterStep # Feat

Мой behat.yml:

default:
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://integration.fvs.dev.intern.etecture.de/private-clients
browser_name: 'firefox'
selenium2:
wd_host: http://hub.selenium.intern.etecture.de:4444/wd/hub
capabilities: { "browser": "firefox", "version": "14"}
goutte: ~
sessions:
goutte:
goutte: ~
selenium2:
selenium2: ~
symfony2:
symfony2: ~
suites:
backend:
type: symfony_bundle
mink_session: selenium2
contexts:
- app\features\bootstrap\FeatureContext:
screen_shot_path: app/screenshot

мой FeatureContext.php

class FeatureContext extends MinkContext
{
private $screenShotPath;

public function __construct()
{
$this->screenShotPath = "/app/screenshot";
}

/**
* Take screen-shot when step fails. Works only with Selenium2Driver.
*
* @AfterStep
* @param AfterStepScope $scope
*/
public function takeScreenshotAfterFailedStep(AfterStepScope $scope)
{
if (99 === $scope->getTestResult()->getResultCode()) {
$driver = $this->getSession()->getDriver();

if (! $driver instanceof Selenium2Driver) {
return;
}

if (! is_dir($this->screenShotPath)) {
mkdir($this->screenShotPath, 0777, true);
}

$filename = sprintf(
'%s_%s_%s.%s',
$this->getMinkParameter('browser_name'),
date('Ymd') . '-' . date('His'),
uniqid('', true),
'png'
);

$this->saveScreenshot($filename, $this->screenShotPath);
}
}

/**
* @Then /^I should see the css selector "([^"]*)"$/
* @Then /^I should see the CSS selector "([^"]*)"$/
*/
public function iShouldSeeTheCssSelector($css_selector) {
$element = $this->getSession()->getPage()->find("css", $css_selector);
if (empty($element)) {
throw new \Exception(sprintf("The page '%s' does not contain the css selector '%s'", $this->getSession()->getCurrentUrl(), $css_selector));
}
}

/**
* @Then /^I should not see the css selector "([^"]*)"$/
* @Then /^I should not see the CSS selector "([^"]*)"$/
*/
public function iShouldNotSeeAElementWithCssSelector($css_selector) {
$element = $this->getSession()->getPage()->find("css", $css_selector);

if (empty($element)) {
throw new \Exception(sprintf("The page '%s' contains the css selector '%s'", $this->getSession()->getCurrentUrl(), $css_selector));
}
}
}

У кого-нибудь есть идеи?
Спасибо

0

Решение

Вероятно, глядя на ваши примеры, проблема в вашем behat.yml конфигурационный файл.
default это имя вашего профиля и extensions Ключ является потомком этого профиля. Итак, каждая строка ниже default профиль должен иметь дополнение 4 пробела.

default:
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://integration.fvs.dev.intern.etecture.de/private-clients
browser_name: 'firefox'
selenium2:
wd_host: http://hub.selenium.intern.etecture.de:4444/wd/hub
capabilities: { "browser": "firefox", "version": "14"}
goutte: ~
sessions:
goutte:
goutte: ~
selenium2:
selenium2: ~
symfony2:
symfony2: ~
suites:
backend:
type: symfony_bundle
mink_session: selenium2
contexts:
- app\features\bootstrap\FeatureContext:
screen_shot_path: app/screenshot
1

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

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

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