2012-06-27 4 views
0

Я использую композитор с Symfony 2.0.15 и перехожу на новейший Behat 2.4. Это в моем composer.json:норка-гут-водитель. Невозможно установить fabpot/goutte на Symfony 2.0

"require-dev": { 
    "behat/behat": "[email protected]", 
    "behat/mink-extension": "*", 
    "behat/symfony2-extension": "*", 
    "behat/mink-browserkit-driver": "*", 
    "behat/mink-goutte-driver": "dev-master", 
    "behat/common-contexts": "*", 
    "kriswallsmith/buzz": ">=0.5.0" 
} 

Я бегу: php composer.phar update --dev

И есть ошибка:

Your requirements could not be solved to an installable set of packages. 

Problem 1 
- Installation request for behat/mink-goutte-driver dev-master -> satisfiable by behat/mink-goutte-driver dev-master. 
- don't install fabpot/goutte 1.0.x-dev|install fabpot/goutte dev-master 
- behat/mink-goutte-driver dev-master requires fabpot/goutte 1.0.* -> satisfiable by fabpot/goutte 1.0.x-dev. 
- Conclusion: remove symfony/symfony v2.0.15 
- fabpot/goutte dev-master requires symfony/dom-crawler 2.1.* -> satisfiable by symfony/symfony 2.1.x-dev, symfony/dom-crawler v2.1.0-BETA1, symfony/dom-crawler 2.1.x-dev, symfony/symfony v2.1.0-BETA1. 
- Can only install one of: symfony/symfony v2.0.15, symfony/symfony 2.1.x-dev. 
- Can only install one of: symfony/symfony v2.1.0-BETA1, symfony/symfony v2.0.15. 
- don't install symfony/symfony v2.0.15|don't install symfony/dom-crawler v2.1.0-BETA1 
- don't install symfony/dom-crawler 2.1.x-dev|don't install symfony/symfony v2.0.15 
- Installation request for symfony/symfony == 2.0.15.0 -> satisfiable by symfony/symfony v2.0.15. 

Если я правильно понял ошибку правильно, это происходит потому, что fabpot/goutte пакет зависит от Symfony 2.1 и не доступны для Symfony 2.0. Поправьте меня, если я ошибаюсь.

Вот мой behat.yml:

default: 
    formatter: 
     parameters: 
     paths: false 
    context: 
     class: 'Site\PublicBundle\Features\Context\FeatureContext' 
     parameters: 
     base_url: 'http://test-anton.site.com' 
    extensions: 
     Behat\Symfony2Extension\Extension: 
     mink_driver: true 
     bundle: 'PublicBundle' 
     kernel: 
      env: test 
      debug: true 
     Behat\MinkExtension\Extension: 
     default_session: symfony2 
     base_url: 'http://test-anton.site.com' 

И это образец моего неисправного сценария:

Scenario: User can view homepage 
    When I go to "/" 
    Then the response code should be 200 

"When I go to" - это шаг MinkContext, но "Then the response code should be 200" - это шаг от Behat \ CommonContexts \ WebApiContext. Когда я использую только шаги от MinkContext - "Then the response status code should be 200", он работает отлично.


Окончательный ответ, что Behat\CommonContexts\WebApiContext не совместим с Behat 2.4.

ответ

1

Может быть, это глупый вопрос, но вы используете goutte? Недавно я просмотрел подобное обновление, и мне был нужен драйвер mink-browserkit.

Я не уверен, почему у goutte есть зависимость от 2.1, и может быть рискованно использовать его с 2.0. Если вам действительно нужно, попробуйте определить пользовательский репозиторий для goutte в вашем composer.json (и нести требования в Symfony).

Update

Обратите внимание, что сообщение об ошибке говорит "вызов функции члена getUri()". Это относится к getCurrentUri():

public function getCurrentUrl() 
{ 
    return $this->client->getRequest()->getUri(); 
} 

Это означает, что клиент есть, но GetRequest() возвращает нуль. Это говорит о том, что запрос еще не сделан.

Вы делали запрос перед обращением к его URL-адресу?

Установка Goutte не решит вашу проблему (вам это совсем не нужно).

+2

На самом деле, mink-browserkit-driver является единственным требованием для драйвера Symfony2, который в большинстве случаев использовался вами с BehatBundle. – everzet

+0

Мне сейчас не нужны goutte для моих нужд. Если я использую только mink-browserkit-driver, тогда я получаю эту фатальную ошибку: вызовите функцию-член getUri() для не-объекта в vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver .php в строке 124. Это означает, что браузер не я надеялся, что установка goutte исправит это. Есть идеи, как это исправить? –

+0

Не могли бы вы вставить свой файл behat.yml? Вы включили mink_driver для расширения Symfony2? –

Смежные вопросы