Я пытаюсь настроить 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
Может кто-нибудь сказать мне, почему?
Я сделал все в точности как в официальной статье.
Вы используете несовместимые версии расширений / драйверов 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 попытался смягчить проблему, используя альтернативу, которая не сильно помогла.
Других решений пока нет …