gpt4 book ai didi

php - Behat 无法初始化:Client::createResponse() 的声明应与 createResponse() 兼容

转载 作者:搜寻专家 更新时间:2023-10-31 21:33:03 30 4
gpt4 key购买 nike

我正在尝试设置 Behat,但是当我运行 bin/behat --init 时它无法初始化。我的composer.json取自官方docs :

{
"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 3 升级 Behat 2 配置。Documentation仍然很差,但基础知识涵盖得很好herehere .将您的配置更新为此可以解决问题:

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'

这是包装好的 files ,以防万一你迷路了,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 没有发出适当的警告,而是试图通过使用替代方法来缓解问题,但这并没有太大帮助。

关于php - Behat 无法初始化:Client::createResponse() 的声明应与 createResponse() 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355272/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com