PHPUnit代码覆盖率命令无法运行问题求助
解决PHPUnit "No whitelist configured" 错误
我刚帮你排查了下这个问题,No whitelist configured错误本质是PHPUnit没法定位到你要计算代码覆盖率的目标文件,核心问题出在你配置里的白名单路径上。
看你给出的配置:
<directory suffix=".php">/src/*</directory>
这里的/src/*是绝对路径,它会指向系统根目录下的src文件夹,而不是你项目根目录里的src,这显然不是你想要的。另外*符号也是多余的,<directory>标签会自动递归遍历目标目录下的所有符合后缀的文件。
修正方案
把白名单的目录路径改成项目根目录的相对路径即可,修改后的完整配置如下:
<phpunit colors="true" bootstrap="tests/bootstrap.php"> <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">src</directory> <!--<file>/path/to/file</file>--> <exclude> <!--<directory suffix=".php">/path/to/files</directory>--> <!--<file>/sr</file>--> </exclude> </whitelist> </filter> <testsuites> <testsuite name="Application Test Suite"> <directory>tests</directory> </testsuite> </testsuites> </phpunit>
额外检查点
- 确认你的项目根目录下确实存在
src文件夹,且里面有PHP源码文件 - 确保你是在项目根目录下执行覆盖率命令:
./vendor/bin/phpunit --coverage-html coverage - 如果还是有问题,可以先跳过配置文件,用命令行参数临时指定白名单测试:
要是这个命令能正常生成覆盖率报告,那说明就是配置文件的路径问题,再回头核对xml配置即可。./vendor/bin/phpunit --coverage-html coverage --whitelist src
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

