Не могу включить расширение Behat Mink

Я пытаюсь использовать behat с расширением mink, чтобы создать упрощенный сценарий. Однако я застрял в начале, и часы гугления, похоже, не помогают.

Мой композитор требует

  "require": {
    "behat/behat": "3.0.6",
    "behat/mink": "1.6.*",
    "behat/mink-extension": "*",
    "behat/mink-goutte-driver": "*"
  }

Мой behat.yml

default:
  autoload:
    '': %paths.base%/features/bootstrap
  suites:
    default:
      paths:
        - %paths.base%/features
      extensions:
        Behat\MinkExtension:
          base_url:  'http://example.com'
          goutte: ~

Мой FeatureContext.php

<?php

use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\MinkExtension\Context\MinkContext;

/**
 * Behat context class.
 */
class FeatureContext extends MinkContext implements SnippetAcceptingContext
{
    /**
     * Initializes context.
     *
     * Every scenario gets it's own context object.
     * You can also pass arbitrary arguments to the context constructor through behat.yml.
     */
    public function __construct()
    {
    }

    /**
     * @Given /^I am on home page$/
     */
    public function iGoToHomePage()
    {
        $session = $this->getSession();
        $session->visit($this->locatePath('/'));
    }
}

Всякий раз, когда я запускаю свою функцию, я получаю

  Mink instance has not been set on Mink context class. Have you enabled the Mink Extension? (RuntimeException)

Я перепроверял отступы десятки раз, проверял наличие пространства имен в каталоге поставщиков, менял местами. Кажется, ничего не помогает - что здесь не так?


person Vladimir Hraban    schedule 17.03.2016    source источник
comment
Контекст вашей функции расширяет RawMinkContext (или один из его родственников)?   -  person bishop    schedule 17.03.2016
comment
@епископ Да, это так. Я обновил свой вопрос, указав содержимое featureContext.php.   -  person Vladimir Hraban    schedule 17.03.2016
comment
Переместили ли вы extensions из suites, чтобы autoload, extensions и suites оказались на одном уровне YAML?   -  person bishop    schedule 17.03.2016
comment
@bishop Невероятно, позор мне. Конечно, ответ был таким простым. Большое спасибо, не могли бы вы опубликовать это как ответ, чтобы я мог его принять?   -  person Vladimir Hraban    schedule 17.03.2016
comment
Конечно, рады помочь!   -  person bishop    schedule 17.03.2016


Ответы (1)


extensions не применяются к каждому набору, поэтому переместите эту директиву на уровень выше, например:

default:
  autoload:
    '': %paths.base%/features/bootstrap
  extensions:
    Behat\MinkExtension:
      base_url:  'http://example.com'
      goutte: ~
  suites:
    default:
      paths:
        - %paths.base%/features
person bishop    schedule 17.03.2016