Behat не в состоянии инициировать: объявление Client :: createResponse () должно быть совместимо с createResponse ()

Я пытаюсь настроить Behat, но он не запускается при запуске bin/behat --init, мой composer.json взято из официального документы:

{
"require": {
"behat/behat": "2.4.*@stable",
"behat/mink": "1.4.*@stable",
"behat/mink-extension": "*",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium2-driver": "*"},
"minimum-stability": "dev",
"config": {
"bin-dir": "bin/"}
}

composer install работает нормально и выглядит так, как будто все зависимости установлены.

# behat.yml
default:
paths:
features:  features
bootstrap: features/bootstrap

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

annotations:
paths:
features: features/annotations

closures:
paths:
features: features/closures

Бег # bin/behat --init выдает следующую ошибку:

PHP Strict Standards:  Declaration of Behat\Mink\Driver\Goutte\Client::createResponse() should be compatible with Goutte\Client::createResponse(GuzzleHttp\Message\Response $response) in /web/Test-1/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/Goutte/Client.php on line 23

Strict Standards: Declaration of Behat\Mink\Driver\Goutte\Client::createResponse() should be compatible with Goutte\Client::createResponse(GuzzleHttp\Message\Response $response) in /web/Test-1/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/Goutte/Client.php on line 23[ReflectionException]
Class Guzzle\Http\Client does not exist

Может кто-нибудь сказать мне, почему?
Я сделал все в точности как в официальной статье.

3

Решение

Вы используете несовместимые версии расширений / драйверов Mink. Следующее извлекает последние версии, совместимые (прямо сейчас) с Behat 3 и Mink 1.6, в то время как вы хотите использовать гораздо более старые версии (2.4. * И 1.4. * Соответственно).

"behat/mink-extension": "*",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium2-driver": "*"

Я предполагаю, что вы извлекли это из Интернета, так как я не могу найти другого примера с фиксированными версиями, что довольно иронично, поскольку одни и те же люди, вероятно, одновременно ведут блоги о том, сколько плохой практики то есть. Если вы только начинаете, я предлагаю вам придерживаться последних версий Behat и Mink, они намного лучше и более чем стабильны в течение последних 6 месяцев. Измените ваш composer.json и обновите зависимости:

"behat/behat": "*",
"behat/mink": "*"

Если нет, зайдите в каждый репозиторий расширений / драйверов и найдите помеченную версию с начала-середины 2013 года, которая должна исправить это для более старых пакетов.

Обновить

Предоставленный вами код не работает, потому что вы используете старый формат конфигурации с новой версией Behat / Mink. Не забывайте, что конфиги Behat 2 должны быть обновлены до Behat 3. Документация все еще довольно беден, но основы покрыты довольно хорошо Вот а также Вот. Обновление вашей конфигурации для решения этой проблемы:

default:
extensions:
Behat\MinkExtension:
base_url: http://en.wikipedia.org
goutte: ~
selenium2: ~

suites:
default:
paths:
- '%paths.base%/features'

annotations:
paths:
- '%paths.base%/features/annotations'

closures:
paths:
- '%paths.base%/features/closures'

Вот упакованные файлы, на случай, если вы заблудились, команда init выдает это:

Ian-Bytcheks-MacBook-Pro:behat ianbytchek$ php ./vendor/bin/behat --init
+d features - place your *.feature files here
+d features/bootstrap - place your context classes here
+f features/bootstrap/FeatureContext.php - place your definitions, transformations and hooks here
+d features/annotations - place your *.feature files here
+d features/closures - place your *.feature files here

Обновить

Корнем всего зла был модуль curl, который не был установлен в среде автора. Вместо правильного предупреждения php попытался смягчить проблему, используя альтернативу, которая не сильно помогла.

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector