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 にアクセスできますか
この問題が多くのフォーラムで議論されているのを見てきましたが、そのうちの 1 つが具体的な答えを出しました
多くのフォーラムが、サーバー名localhost
の代わりに使用することを提案しました。127.0.0.1
私の場合、それはすでにlocalhostです。
この点に関する提案は役に立ちます。
ありがとう、ラヴリ