类'..\单元\单元测试用例' 未找到



我正在将laravel5.5.*升级到5.6.0。Composer安装运行良好。我正在尝试运行出现此错误的单元测试。

类'。。\未找到Unit\UnitTestCase的

这是错误的堆栈跟踪:

致命错误:未捕获错误:类"PhiraterTest\Unit\UnitTestCase"在中找不到/home/varrant/code/pirater-l51/tests/unit/Pirater/AdditionalCurrencies/CreateAdditionalCurrencyCommandHandlerTest.php:11堆栈跟踪:#0/home/warrant/code/phrater-l51/vendor/phpunit/phpunit/src/Util/Fileloader.php(64(:include_one((#1/home/warrant/code/phiter-l51/vendor/phpunit/phpunit/src/Util/Fileloader.php(48(:PHPUnit\Util\Fileloader::load('/home/warrant/c.…'(#2/home/warrant/code/phiter-l51/vendor/phpunit/phpunit/src/Framework/TestSuite.php(325(:PHPUnit\Util\Fileloader::checkAndLoad('/home/warrant/c…'(#3/home/warrant/code/phiter-l51/vendor/phpunit/phpunit/src/Framework/TestSuite.php(403(:PHPUnit\Framework\TestSuite->addTestFile('/home/warrant/c…'(#4/home/warrant/code/phiter-l51/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(65(:PHPUnit\Framework\TestSuite->addTestFiles(数组(#5/home/warrant/code/phiter-l51/vendor/phpunit/phpunit/src/TextUI/Command.php(169(:PHPUnit\Runner\BaseTestRunner->getTest('tes in/home/varrant/code/pirater-l51/tests/unit/Pirater/AdditionalCurrencies/CreateAdditionalCurrencyCommandHandlerTest.php在线11

我的单元测试在tests/目录中。我的UnitTestCase类由TestCase类扩展,TestCase类由BrowserKitTestCase扩展。我在这里做错了什么?解决方案是什么?

如果你的依赖类真的存在并且有合适的命名空间,那么出现上述错误的最可能原因是(避免将以下示例复制到你的项目中,这显然是不起作用的(:

  • composer.json文件(根目录(没有相关的依赖记录(也不要忘记composer.lock文件(,smth类似:

    "autoload-dev": {
    "psr-4": {
    "Tests\": "tests/"
    }
    },
    
  • 因此,vendor/autoload.php文件(或其任何合并的同级文件,例如vendor/comporter/autoload_classmap.php,取决于您的情况(可能会错过相关的依赖记录,smth类似:

    return array(
    'PHPUnit\Framework\TestCase' => '/vendor/phpunit/phpunit/src/Framework/TestCase.php',
    

在大多数这样的情况下,它实际上是由autoload.php功能提供的一个遗漏的依赖项,而这反过来又是由composer故障引起的。因此,考虑到所有这些,请尝试通过运行composer self-update更新composer本身,然后通过composer update更新您的依赖关系。

最新更新