我正在尝试使用PhpStorm中的功能进行代码覆盖,但是它显示了此错误,
“未配置白名单,将不会生成代码覆盖率。”
我正在本地Mac机器上运行PHP 7.2。
编辑:我已经为白名单和登录添加了phpunit设置
这是我的phpunit.xml文件的样子:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit printerClass="Codedungeon\PHPUnitPrettyResultPrinter\Printer"
backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./report" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80" />
</logging>
<php>
</php>
</phpunit>
我也尝试设置
processUncoveredFilesFromWhitelist
代替
addUncoveredFilesFromWhitelist
但仍然是相同的错误
答案 0 :(得分:3)
我遇到了同样的问题。这可能会有帮助。
首先,请确保您可以在命令行上运行代码覆盖率。
然后,查看Phpstorm尝试运行的命令。在测试输出的第二行中给出:
Testing started at 16:44 ...
C:\...\php.exe -dxdebug.coverage_enable=1 C:/.../vendor/phpunit/phpunit/phpunit --coverage-clover C:\.\XXX.xml --no-configuration --filter "/(::XXX)( .*)?$/" App\XxxTest C:\XXX.php --teamcity
PHPUnit 7.3.3 by Sebastian Bergmann and contributors.
Error: No whitelist is configured, no code coverage will be generated.
我试图自己在命令行上运行此命令,更改路径。
我注意到的是“ -无配置”。这意味着它甚至没有读取我的phpunit.xml文件。要解决此问题,请设置 设置-> 语言和框架-> Php -> 测试框架->“ 默认配置文件”添加到您的phpunit.xml文件。
您可能有其他问题,但这可能会为您指明正确的方向。
答案 1 :(得分:1)
您需要配置白名单,这是一个phpunit设置,请参见https://phpunit.de/manual/6.5/en/code-coverage-analysis.html#code-coverage-analysis.whitelisting-files
答案 2 :(得分:0)
运行以下命令。它为我工作。我正在使用PHP 7.1,Symfony(1.x)
和PHPUnit(5.7)
旧版。因此目录结构可能因版本而异。
symfony/lib> vendor/bin/phpunit --whitelist ../[valid dir name]/
--coverage-clover test.xml UnitTest ../[dir]/[file_name]
symfony/lib> vendor/bin/phpunit --whitelist ../plugins/
--coverage-clover test.xml UnitTest ../test/PluginAllTests.php
OR
symfony/lib> vendor/bin/phpunit --whitelist ../tests/
--coverage-clover test.xml UnitTest ../test/PluginAllTests.php