我尝试使用谷歌搜索,但我无法找到答案,所以我在这里发帖。
我正在尝试使用PHP 5.5.9在Cloud9 IDE上编写代码2.1.5,查看编写验收测试,并配置我的acceptance.suite.yml文件。
我正在尝试在codeception PhpBrowser page中描述的PhpBrowser请求中包含cookie。我以为我可以使用acceptance.suite.yml中的“cookies”设置。
acceptance.suite.yml
# Codeception Test Suite Configuration
#
# Suite for acceptance tests.
# Perform tests in browser using the WebDriver or PhpBrowser.
# If you need both WebDriver and PHPBrowser tests - create a separate suite.
class_name: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: https://dm1-cboudreausf.c9users.io
cookies:
c9_user_cookie:
Name: c9.live.user.sso
Value: somevaluehere
Path: /
Domain: .c9users.io
- \Helper\Acceptance
这是我的HomepageCept.php:
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure the homepage renders correctly');
$I->amOnPage('/');
$I->see('welcome');
但是当我在调试模式下运行我的测试时:
php codecept.phar run --debug
我可以看到没有请求cookie:
Ensure the homepage renders correctly (HomepageCept)
Scenario:
* I am on page "/"
[Page] /
[Response] 302
[Request Cookies] []
[Response Headers] {"Location":["https://c9users.io/_user_content/authorize?redirect=https%3A%2F%2Fdm1-cboudreausf.c9users.io%2F"],"Date":["Mon, 21 Dec 2015 22:38:44 GMT"],"Transfer-Encoding":["chunked"],"X-BACKEND":["apps-proxy"],"Content-Type":["text/html"]}
[Redirecting to] https://c9users.io/_user_content/authorize?redirect=https%3A%2F%2Fdm1-cboudreausf.c9users.io%2F
这个的正确语法是什么?
答案 0 :(得分:0)
Cookies参数不由PhpBrowser处理,而是传递给Guzzle HTTP Client。
如果您运行测试和PHP 5.4,那么您使用Guzzle 5.3,http://docs.guzzlephp.org/en/5.3/clients.html?highlight=cookies
Types: bool / array / GuzzleHttp\Cookie\CookieJarInterface
我不知道您使用的格式是否适用于Guzzle 5.3,但键值对应该正常工作
cookies:
'c9.live.user.sso': 'somevaluehere'
如果您在较新版本的PHP上运行测试,那么您可能会使用Guzzle 6
http://docs.guzzlephp.org/en/latest/request-options.html#cookies
You must specify the cookies option as a GuzzleHttp\Cookie\CookieJarInterface or false.
我认为Cookie选项无法与Guzzle 6一起使用,所以我在Github提出了这个问题:https://github.com/Codeception/Codeception/issues/2653。