Я написал тестовый пример Selenium для 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 _cover.php, он не может найти файл cookie и информацию, поэтому покрытие кода не появляется.
Вещи, которых я не понимаю:
protected $coverageScriptUrl = 'http://applicationname/phpunit_coverage.php';
Я видел, как эта проблема обсуждалась на многих форумах, но один дал конкретный ответ
Многие форумы предлагали использовать localhost
вместо 127.0.0.1
в качестве имени сервера. В моем случае это уже локальный хост.
Любое предложение в этом отношении будет полезно.
Спасибо, Равури