In the PHPUnit docs,它說,它可能得到的代碼覆蓋率數據:PHPUnit_Selenium代碼覆蓋率是否工作?
複製的PHPUnit /擴展/ SeleniumTestCase/phpunit_coverage.php:
PHPUnit_Extensions_SeleniumTestCase的可以收集代碼覆蓋率信息通過測試運行硒進入您的網絡服務器的文檔根目錄。
在你的web服務器的php.ini配置文件,配置的PHPUnit /擴展/ SeleniumTestCase/prepend.php和PHPUnit的/擴展/ SeleniumTestCase/append.php分別中的auto_prepend_file和auto_append_file所。
在你的測試用例類,它擴展了PHPUnit_Extensions_SeleniumTestCase,使用 保護$ coverageScriptUrl = 'HTTP://host/phpunit_coverage.php'; 配置phpunit_coverage.php腳本的URL。
我一直沒能得到這個輸出的任何覆蓋信息。我可以通過正常的單元測試獲得代碼覆蓋率信息。
對於在http://localhost/ts2_templates/
運行我的應用程序,我複製到phpunit_coverage.php
http://localhost/phpunit_coverage.php
。
我已經添加了以下爲php.ini:
auto_prepend_file = "/path/to/pear/share/pear/PHPUnit/Extensions/SeleniumTestCase/prepend.php"
auto_append_file = "/path/to/pear/share/pear/PHPUnit/Extensions/SeleniumTestCase/append.php"
...並覈實他們被稱爲用die("yep it's me");
。
最後,我增加了以下我的測試用例:
<?php
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
# added line below
protected $coverageScriptUrl = 'http://localhost/phpunit_coverage.php';
protected function setUp()
{
$this->setBrowser('firefox');
$this->setBrowserUrl('http://localhost/ts2_templates');
}
public function testTitle()
{
$this->url('http://localhost/ts2_templates');
$this->assertContains('test', $this->title());
}
}
?>
下面是運行的代碼覆蓋測試命令,通過PHPStorm產生:
/Applications/MAMP/bin/php5.3/bin/php -dxdebug.coverage_enable=1 /private/var/folders/pp/0t4y41f95j5313qm_f8b42fw0000gn/T/ide-phpunit.php --coverage-clover /path/to/coverage/ts2_templates$WebTest.coverage --no-configuration WebTest /Users/Ian/php/ts2_templates/tests/WebTest.php
繼承人的輸出覆蓋XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1341015508">
<project timestamp="1341015508">
<metrics files="0" loc="0" ncloc="0" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
</project>
</coverage>
T他測試自己通過。
我已經驗證有沒有退出或代碼的任何地方死語句。
任何想法?