Вопрос по – Пытаясь заставить Минка работать с Бехатом

9

Я следовал этому руководству (и все установил через composer):http://docs.behat.org/cookbook/behat_and_mink.html и я пытаюсь заставить работать Behat + Mink, но каждый раз, когда я пытаюсь запустить bin / behat, я получаю следующую ошибку:

PHP Fatal error:  Call to a member function getSession() on a non-object in vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext.php on line 80

Эта строка кода:

return $this->getMink()->getSession($name);

Так что по какой-то причине атрибут норки пуст, но я не знаю почему.

Мой файл .feature точно такой же, как и в руководстве, класс FeatureContext также из руководства:

use Behat\Behat\Context\ClosuredContextInterface,
    Behat\Behat\Context\TranslatedContextInterface,
    Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;     

use Behat\MinkExtension\Context\MinkContext;

/**
 * Features context.
 */
class FeatureContext extends MinkContext 
{

}

и мой файл vendor / behat / mink / behat.yml содержит:

context:
  extensions:
    Behat\MinkExtension\Extension:
      base_url:  'http://en.wikipedia.org/'
      goutte:    ~
      selenium2: ~

Я также пытался заставить мой класс расширить BehatContext, а затем вызвать useContext, но это выдает мне ту же ошибку. Кажется, что само по себе это работает, просто что-то с Минком выдает эту фатальную ошибку, и я не знаю, как ее исправить.

Ваш Ответ

2   ответа
8

Это потому, что вы должны скопироватьvendor/behat/behat/behat.yml.dist подать вyour/project/root/behat.ymlвместо редактирования файла в директории вендора и добавленияextesions кdefault раздел.

И вот как это выглядит:

default:
  extensions:
    Behat\MinkExtension\Extension:
      base_url: http://lunch-time/app_dev.php
      goutte: ~
      selenium2: ~

  paths:
    features:  features
    bootstrap: features/bootstrap

annotations:
  paths:
    features: features/annotations

closures:
  paths:
    features: features/closures
Error: User Rate Limit Exceededstackoverflow.com/a/28173700/425204Error: User Rate Limit Exceeded
0

Я столкнулся с аналогичной проблемой. Нам нужно сказать Symfony инициализировать объект.

Мой был исправлен после добавления по умолчанию & gt; люксы & gt; my_suite.

contexts: [Behat\MinkExtension\Context\MinkContext]

Вот как выглядит мой новый behat.yml.

default:
    suites:
        my_suite:
            type: symfony_bundle
            bundle: AcmeProjectManagerBundle
            contexts: [Behat\MinkExtension\Context\MinkContext]
extensions:
    Behat\Symfony2Extension: ~
    Behat\MinkExtension:
        base_url: http://en.wikipedia.org
        goutte: ~
        selenium2: ~
        sessions:
            default:
                symfony2: ~

Похожие вопросы