我已经为 PHP 编写了 Selenium 测试用例。我想在执行这些测试用例时获得代码覆盖率。我的测试用例:
<?php
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
protected $coverageScriptUrl = 'http://applicationname/phpunit_coverage.php';
protected function setUp()
{
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://applicationname");
$this->setCollectCodeCoverageInformation(true);
$this->setTestId("10001");
$this->setHost("applicationname");
}
public function testMyTestCase()
{
$this->open("http://applicationame");
$this->assertEquals("title", $this->getTitle());
$this->type("id=ext-comp-1002", "testuser");
$this->fireEvent("id=ext-comp-1002", "blur");
$this->type("id=ext-comp-1003", "testpassword");
$this->fireEvent("id=ext-comp-1003", "blur");
$this->click("ext-gen45");
$this->waitForPageToLoad("200000");
}
}
?>
我已按照链接“http://www.phpunit.de/manual/current/en/selenium.html”中提到的步骤进行操作
运行测试后,我无法找到代码覆盖率。在 phpunit_coverage.php 中,它正在查找名称为 PHPUNIT_SELENIUM_TEST_ID 的 cookie。这个 cookie 是在 Driver.php 中创建的,我看到 cookie 可用,但它的主机名设置为“localhost”,而不是我的应用程序名称。
Cookie 生命周期设置为会话,即意味着在测试用例执行后该 cookie 将不再可用,当我尝试启动 phpunit_coverage.php 时,它无法找到 cookie 和信息,因此没有出现代码覆盖。
我不明白的事情:
protected $coverageScriptUrl = 'http://applicationname/phpunit_coverage.php';
- 如果 cookie 具有与应用程序不同的主机,则该 cookie 是否可以访问
我在很多论坛上都看到过这个问题,但是有一个给出了具体的答案
许多论坛建议使用localhost
而不是127.0.0.1
作为服务器名称。就我而言,它已经是本地主机。
在这方面的任何建议都会有所帮助。
谢谢, 拉武里