gpt4 book ai didi

phpunit - 无法使用 CodeCoverage 和 Composer 重新声明类错误

转载 作者:行者123 更新时间:2023-12-02 15:43:46 26 4
gpt4 key购买 nike

使用 Composer 的 autoload.php 作为引导文件时,我遇到 PHPUnit Code_Coverage 错误。我创建了自己的 boostrap.php 文件,只需单独包含每个文件即可,一切正常。我是否偶然发现了 Composer 错误,或者我在某个地方犯了错误?

//编辑:我正在使用所有内容的最新(最新)版本:PHPUnit 3.7.12、Code_Coverage 1.2.7、Composer b51a4a7

Fatal error: Cannot redeclare class C3\CDN\EdgeCast in /Users/kperrine/Projects/edgecast-custom-reports/src/C3/CDN/EdgeCast.php on line 11

Call Stack:
0.0017 641760 1. {main}() /Applications/MAMP/bin/php/php5.3.14/bin/phpunit:0
0.2232 1111312 2. PHPUnit_TextUI_Command::main() /Applications/MAMP/bin/php/php5.3.14/bin/phpunit:46
0.2232 1112040 3. PHPUnit_TextUI_Command->run() /Applications/MAMP/bin/php/php5.3.14/lib/php/PHPUnit/TextUI/Command.php:129
0.3027 4636952 4. PHPUnit_TextUI_TestRunner->doRun() /Applications/MAMP/bin/php/php5.3.14/lib/php/PHPUnit/TextUI/Command.php:176
21.5764 6604032 5. PHP_CodeCoverage_Report_HTML->process() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:384
21.5764 6604240 6. PHP_CodeCoverage->getReport() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php:120
21.5768 6663512 7. PHP_CodeCoverage_Report_Factory->create() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php:158
21.5769 6663512 8. PHP_CodeCoverage->getData() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Factory.php:64
21.5769 6663512 9. PHP_CodeCoverage->addUncoveredFilesFromWhitelist() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php:190
21.5769 6664408 10. PHP_CodeCoverage->processUncoveredFileFromWhitelist() /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php:535
21.5778 6757272 11. include_once('/Users/kperrine/Projects/edgecast-custom-reports/src/C3/CDN/EdgeCast.php') /Users/kperrine/Projects/edgecast-custom-reports/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php:558

我的 phpunit.xml 是:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="C3 EdgeCast Tests">
<directory>./tests/</directory>
</testsuite>
</testsuites>

<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src</directory>
</whitelist>
</filter>

<logging>
<log type="coverage-html" target="log/report" charset="UTF-8"
highlight="false" lowUpperBound="35" highLowerBound="70"/>
</logging>
</phpunit>

最佳答案

问题出在我在项目中使用命名空间。我的项目命名空间是 C3\CDN\EdgeCast(注意 EdgeCast 中的大写“C”),但是当我在测试文件中使用该命名空间时,我不小心输入了 use C3\CDN\Edgecast; (注意 Edgecast 中的小写“c”)。名称的差异导致 CodeCoverage 或 Composer(我不知道到底是哪一个)认为该类尚未包含在内,因此尝试再次包含它。

这个故事的寓意:始终仔细检查您的类和命名空间名称。

关于phpunit - 无法使用 CodeCoverage 和 Composer 重新声明类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249339/

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