能否脱离PHPUnit使用php-code-coverage?Symfony项目覆盖率统计为0%
Symfony遗留系统Selenium自动化测试代码覆盖率统计异常问题
我们维护着一个基于Symfony开发的遗留PHP系统,包含约1000个操作。目前引入了自动化测试团队,使用Selenium开展自动化测试,但无法衡量测试覆盖范围。
为获取大致的覆盖率数据,我们计划使用php-code-coverage工具,思路是在启用了PHP代码覆盖率(基于pcov)的独立域名上执行自动化测试,让该工具像在PHPUnit中一样记录覆盖率。但实际使用中,工具始终统计出0%的覆盖率。
以下是我们用于启用代码覆盖率的代码片段:
<?php use SebastianBergmann\CodeCoverage\Filter; use SebastianBergmann\CodeCoverage\Driver\Selector; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport; use App\Kernel; require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; return function (array $context) { $fileList = shell_exec('find /var/www/html/project/src -type f -name "*.php"'); $filter = new Filter; $filter->includeFiles(preg_split("/\r\n|\r|\n/", $fileList)); $coverage = new CodeCoverage( (new Selector)->forLineCoverage($filter), $filter ); $coverage->start(md5(time())); $kernalObj = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); $coverage->stop(); (new HtmlReport)->process($coverage, 'tmp/code-coverage-report'); return $kernalObj; };
我们查阅了部分资料,有的称无法脱离PHPUnit使用php-code-coverage,有的则表示可行。
内容的提问来源于stack exchange,提问作者Nandakumar V
相关产品推荐
相关产品推荐

