我正在构建一个
Laravel
项目,现在我正在为其创建测试。我正在使用:
10.3.1
8.2.3
3.2.0
9.6.4
1.22.5
由于 Pest,我无法将 PHPUnit 更新为
^10.0
(请阅读此处)。
但是,我面临以下问题。当我使用
php artisan test
或 ./vendor/bin/pest
执行测试时,一切正常,没有错误。但是当我像这样添加 --coverage
模式标志时 XDEBUG_MODE=coverage ./vendor/bin/pest --coverage
我收到以下错误:
致命错误:无法声明类 App\Vendor\MediaLibrary\ModifiedMedia,因为该名称已在 用于 /Users/alex/Desktop/Bitbucket/Valet/dealbee-backend/app/Vendor/MediaLibrary/ModifiedMedia.php 8号线
我已经尝试过以下方法:
php artisan optimize:clear
composer dump-autoload
composer clear-cache
php artisan cache:clear
/vendor
文件夹并运行 composer install
他们都没有帮助我解决问题。当我在存储库中运行
find . | grep ModifiedMedia.php
时,我只得到一个匹配项,这是唯一的单个匹配项:./app/Vendor/MediaLibrary/ModifiedMedia.php
这意味着我的存储库中没有其他名为
ModifiedMedia.php
的类。
我遇到了this GitHub 问题。他们建议在
processUncoveredFilesFromWhitelist
文件中将 false
设置为 phpunit.xml
。我没有尝试,因为这不是最好的解决方案。但我确实将 <coverage processUncoveredFiles="true">
设置为 false
只是为了测试这是否有效,是的,它确实有效。当 processUncoveredFiles
设置为 false 时,我不再收到上面的错误。
但这并不是解决方案。我什至不知道
processUncoveredFiles
在做什么以及为什么它会起作用。
任何人都可以帮我解决这个问题而不将
processUncoveredFiles
或 processUncoveredFilesFromWhitelist
设置为 false
吗?
亲切的问候
分享我的问题,我发现了同样的问题。我在测试中使用了 Mockery,同一个类后来导致 phpunit 代码覆盖率报告生成器崩溃。 我消除了嘲笑,然后报道又回来了。我现在正在以不同的方式重写测试。