gpt4 book ai didi

php - PHPUnit生成clover.xml时定义相对路径?

转载 作者:行者123 更新时间:2023-12-03 17:12:58 31 4
gpt4 key购买 nike

我正在使用 PHPUnit 在我的 WordPress 插件上运行集成测试,当我生成覆盖率时,clover.xml file,clover.xml中的文件名属性将有我的文件的绝对路径,例如

<file name="/Users/denis/vagrant-local/www/project/public_html/wp-content/plguins/my-plugin/file-that-is-tested.php">

由于我需要将此文件发送到SonarQube,因此每次发送到SonarQube 时都需要修改此文件,以便我只有相对路径(从 wp-config 文件夹开始)

<file name="wp-content/plguins/my-plugin/file-that-is-tested.php">

如果我发送第一个版本,SonarQube 会将代码覆盖率报告为 0.0%,如果我发送另一个版本,它将显示一些覆盖率(它与 PHPUnit 创建的不同,但这并不重要)。

有没有办法在 PHPUnit 配置中指定这个文件名属性,或者我每次运行测试时都需要运行一个 bash 脚本来删除这个额外的部分吗?

编辑
phpunit.xml.dist看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
backupGlobals="false"
backupStaticAttributes="false"
beStrictAboutCoversAnnotation="true"
bootstrap="tests/bootstrap.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
printerClass="Codedungeon\PHPUnitPrettyResultPrinter\Printer"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
verbose="true"
>
<testsuites>
<testsuite name="integration">
<directory prefix="test-" suffix=".php">./tests/integration/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>./</directory>
<exclude>
<directory>./node_modules</directory>
<directory>./vendor</directory>
<directory>./tests</directory>
<directory suffix=".php">./src/old</directory>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="tests/_reports/coverage" lowUpperBound="35" highLowerBound="80" />
<log type="coverage-clover" target="tests/_reports/clover.xml"/>
<log type="coverage-php" target="tests/_reports/logs/coverage.cov"/>
<log type="junit" target="tests/_reports/logs/logfile.xml"/>
</logging>
</phpunit>

最佳答案

我创建了一个 Symfony 命令,它基本上只是搜索替换绝对路径的一部分并将其删除
https://github.com/dingo-d/woo-solo-api/tree/develop/bin
然后你可以在你的 Composer 脚本中使用它,比如

    "scripts": {
"test:coverage": [
"@php ./vendor/bin/codecept run Integration --coverage --coverage-xml --coverage-html --ansi",
"@php bin/console clean-coverage /Users/denis.zoljom/Sites/personal/plugins-testing/ --ansi"
]
},
或您使用的任何套件。第二个命令将删除 coverage.serialized 中路径的绝对部分和 coverage.xml文件。

关于php - PHPUnit生成clover.xml时定义相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765505/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com