我已经为
PHP编写了Selenium Test案例.我想在执行这些测试用例时获取代码覆盖.我的测试用例:
<?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是在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
与Selenium的集成或功能测试不包括代码,因为它们覆盖了行为.针对这样的测试的代码覆盖率报告不会产生任何有用的信息.单元测试将产生更有意义的代码覆盖率报告.这些测试是根据Selenium提供的信息来运行的,但实际上并没有真正测试您的“代码”.
原文地址:https://www.jb51.cc/php/139429.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。