我使用 PHP 8.0.5、PHPUnit 9.5.4、PHPStorm 2021.1.2。当在我的 XML 配置文件中,我使用这个:
<coverage pathCoverage="true">
<report>
<clover outputFile="./coverage.xml"/>
</report>
</coverage>
(这只是我文件的相关部分)
...并从 PHPStorm 启动命令“Run with coverage”,它不会生成覆盖率报告。
我已停用 XDebug。PHPStorm 向我展示:
警告:必须设置 XDEBUG_MODE=coverage 或 xdebug.mode=coverage
我不知道为什么它提到 XDebug,因为我想使用 pcov,因为我在“运行/调试配置”弹出窗口中设置了它。我尝试将报告放在另一个文件夹中,尝试生成 HTML 报告...通过终端启动命令...这些都不起作用。我在 Google 上没有找到任何关于我的问题的信息。
编辑
我尝试了根本没有加载 XDebug 和这个简化的配置(使用--generate-configuration
参数创建)并添加了前面的代码(没有路径覆盖)。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
bootstrap="TestBootstrap.php"
cacheResultFile=".phpunit.cache/test-results"
executionOrder="depends,defects"
forceCoversAnnotation="true"
beStrictAboutCoversAnnotation="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
failOnRisky="true"
failOnWarning="true"
verbose="true">
<testsuites>
<testsuite name="default">
<directory suffix="Test.php">./src/BlocksTest.php</directory>
</testsuite>
</testsuites>
<coverage cacheDirectory=".phpunit.cache/code-coverage"
processUncoveredFiles="true">
<include>
<directory suffix=".php">../src</directory>
</include>
<report>
<clover outputFile="./coverage.xml"/>
</report>
</coverage>
</phpunit>
即使图书馆说它仍然不起作用:
生成 Clover XML 格式的代码覆盖率报告...