在PHP中收集远程代码覆盖率

HNy*_*ard 6 php phpunit integration-testing code-coverage

在我们的项目中,我们运行PHPUnit测试,使用SeleniumCurl在不同的开发服务器上打开页面.服务器B有一个运行服务网站的Apache服务器.服务器A通过将项目文件同步(Rsync)到开发服务器B来启动测试作业,因此两个服务器上的项目文件是相同的.

在PHP中远程收集代码覆盖率统计信息有哪些可能性?

我们已经在使用Xdebug来收集在服务器A上本地运行的单元测试的代码覆盖率(PHPunit直接使用项目文件,因此可以开始/停止收集代码覆盖率报告)

更新:

在服务器B上,Web站点由Apache运行的PHP实例呈现.当使用Selenium/Curl对服务器A上的PHP实例进行测试时,使用命令行版本.该实例无法分析Apache在服务器B上运行的PHP实例.

运行单元测试(不使用其他服务器而不使用Selenium/Curl)时,我们使用如下命令:

phpunit --coverage-html ./results/codecoverage/ ATestFile.php
Run Code Online (Sandbox Code Playgroud)

这将通过在PHP Cli中使用Xdebug在"ATestFile.php"中生成测试的代码覆盖率报告.

Dav*_*ess 3

Github 上的PHPUnit -Selenium项目对此有一个解决方案,我相信 PHPUnit 3.5 中内置的旧版本也有同样的功能。PHPUnit_Extension_Selenium_TestCase文件夹中有一些文件可用于捕获服务器 B 上的代码覆盖率信息。您需要将 Apache 设置为在每个请求前面和后面添加两个 PHP 脚本(恰当地命名为prepend.phpappend.php)。

这些说明位于Selenium 的 PHPUnit 文档部分。搜索“追加”。