Я написал Selenium Test case для PHP. Я хотел бы получить покрытие кода, пока я выполняю эти тестовые примеры. Мой тестовый файл:
<?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 он ищет файл cookie с именем PHPUNIT_SELENIUM_TEST_ID. Этот файл 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
в качестве имени сервера. В моем случае это уже localhost.
Любое предложение в этом отношении будет полезно.
Спасибо, Ravuri