为什么PHPUnit9不期望logging phpunit.xml.dist的log子元素

brc7rcf0  于 2023-03-16  发布在  PHP
关注(0)|答案(2)|浏览(124)

我正在将一个PHP应用程序(超过10年)过渡到PHP 7.4,我们目前正在实现应用程序的PHP 7.4分支的持续集成。我们决定使用PHP当前稳定版本支持的PHPUnit版本。因此,我们将PHP 7.4分支的ci测试工作升级到PHPUnit 9.3。
我们根据文档进行了所有必要的更改,但我们因一个警告而受阻,我们不知道如何修复(假设测试已执行,报告已在正确的位置发布)

Warning - The configuration file did not pass validation!

  The following problems have been detected:

  Line 38:
  - Element 'log': This element is not expected..

我在下面分享我们的PHPUnit配置和我们用来启动它的命令,有人能发现它有什么问题吗?

phpunit -c phpunit.xml.dist

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/9.3/phpunit.xsd"
    colors="true"
    bootstrap="tests/bootstrap.php"
>
    <testsuites>
        <testsuite name="Unit Tests">
            <directory>tests/</directory>
        </testsuite>
    </testsuites>
    <coverage>
        <include>
            <directory suffix=".php">api</directory>
        </include>
    </coverage>
    <logging>
        <log type="junit" target="build/unit_report.xml"/>
    </logging>
</phpunit>
swvgeqrz

swvgeqrz1#

在PHPUnit 9.3中,<log>元素也发生了变化。
你需要改变

<logging>
  <log type="junit" target="build/unit_report.xml"/>
</logging>

<logging>
  <junit outputFile="build/unit_report.xml"/>
</logging>

话虽如此,我还是强烈建议使用PHPUnit的--migrate-configuration CLI选项将配置文件自动转换为新格式。

cetgtptt

cetgtptt2#

PHPUnit 9.5.x中的变更
尝试以下任意选项

<logging>
    <testdoxHtml outputFile="tests/coverage.html"/>
    <testdoxXml outputFile="tests/coverage.xml"/>
    <text outputFile="tests/coverage.txt"/>
</logging>

PHP Unit 9.5文档-日志记录

相关问题