无法访问PHPUNIT覆盖范围中的PHPUNIT\u SELENIUM\u TEST\u ID cookie
要使用无法访问PHPUNIT覆盖范围中的PHPUNIT\u SELENIUM\u TEST\u ID cookie,selenium,phpunit,Selenium,Phpunit,要使用phpunit\u coverage.php我需要在php.ini中为指定的文件prepend.php和append.php设置auto\u prepend\u file和auto\u append\u file属性。在这两个脚本中,检查Cookie以确保测试正在运行: if ( isset($_COOKIE['PHPUNIT_SELENIUM_TEST_ID']) && 问题是此cookie作为本地主机的cookie而不是Web服务器的cookie保存。因此,当它被选中
phpunit\u coverage.php
我需要在php.ini
中为指定的文件prepend.php
和append.php
设置auto\u prepend\u file
和auto\u append\u file
属性。在这两个脚本中,检查Cookie以确保测试正在运行:
if ( isset($_COOKIE['PHPUNIT_SELENIUM_TEST_ID']) &&
问题是此cookie作为本地主机的cookie而不是Web服务器的cookie保存。因此,当它被选中时,它不会被设置,xdebug也不会启动
Selenium和webserver位于不同的计算机上,这可能是导致此错误的原因吗
情况如下:
类似的问题。我首先想到的是一个域问题,因为测试的网站位于vhost上 但是我发现调用
$this->url('some_url')
似乎会悄悄地删除PHPUNIT\u SELENIUM\u TEST\u ID
cookie
我的解决方法是在测试用例中重写url()
方法,以便在调用url()
后重置cookie
protected function url($url =null)
{
try {
$cookie = $this->cookie()->get('PHPUNIT_SELENIUM_TEST_ID');
}
catch (Exception $e) {}
$result = parent::url($url);
if (isset($cookie)) {
$this->cookie()->add('PHPUNIT_SELENIUM_TEST_ID', $cookie)->set();
}
return $result;
}
代码覆盖率文件现在已正确创建。我发现问题在于,当我使用
createCookie()
方法创建cookie时,它被分配给localhost
,因此我以后无法访问它。你有没有想过解决这个问题的方法?“我现在开始打了。@KarlZilles你试过Jérôme的变通方法吗?”?不幸的是,这是很久以前的事了,我不记得我是如何解决这个问题的。我现在没有任何访问此代码的权限,我想在我离开该工作后,它已被更改。我唯一记得的是,我在配置中指定了主机,并可能使用它为给定主机显式设置cookie。祝你好运!