我正在将 laravel
从 5.5.*
升级到 5.6.0
。 Composer 安装运行良好。我正在尝试运行弹出此错误的单元测试。
Class '..\Unit\UnitTestCase' not found
这是错误的堆栈跟踪:
Fatal error: Uncaught Error: Class 'PhiraterTest\Unit\UnitTestCase' not found in /home/vagrant/code/phirater-l51/tests/unit/Phirater/AdditionalCurrencies/CreateAdditionalCurrencyCommandHandlerTest.php:11 Stack trace: #0 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/Util/Fileloader.php(64): include_once() #1 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/Util/Fileloader.php(48): PHPUnit\Util\Fileloader::load('/home/vagrant/c...') #2 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/Framework/TestSuite.php(325): PHPUnit\Util\Fileloader::checkAndLoad('/home/vagrant/c...') #3 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/Framework/TestSuite.php(403): PHPUnit\Framework\TestSuite->addTestFile('/home/vagrant/c...') #4 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(65): PHPUnit\Framework\TestSuite->addTestFiles(Array) #5 /home/vagrant/code/phirater-l51/vendor/phpunit/phpunit/src/TextUI/Command.php(169): PHPUnit\Runner\BaseTestRunner->getTest('tes in /home/vagrant/code/phirater-l51/tests/unit/Phirater/AdditionalCurrencies/CreateAdditionalCurrencyCommandHandlerTest.php on line 11
我的单元测试在 tests/
目录中。我的 UnitTestCase
类由 \TestCase
类扩展,而 TestCase
类由 BrowserKitTestCase
扩展。我在这里做错了什么?可能的解决方案是什么?
最佳答案
如果您的依赖类确实存在并且具有适当的命名空间,那么上述错误最可能的原因是(避免将以下示例复制到您的项目中,这肯定是行不通的):
composer.json文件(根目录)没有相关的依赖记录(别忘了composer.lock文件),smth like:
"autoload-dev": { "psr-4": { "Tests\\": "tests/" } },
作为上述结果,vendor/autoload.php 文件(或其任何合并的同级文件,例如 vendor/composer/autoload_classmap.php,取决于在你的情况下)可能会错过相关的相关记录,比如:
return array( 'PHPUnit\\Framework\\TestCase' => '/vendor/phpunit/phpunit/src/Framework/TestCase.php',
在大多数此类情况下,这实际上是 autoload.php 功能传递的依赖项缺失,而这又是由 composer 故障引起的。因此,考虑到所有这些,尝试通过运行 composer self-update
来更新 composer 本身,然后通过 composer update
更新您的依赖项。
关于php - 找不到类 '..\Unit\UnitTestCase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63258441/