ReflectionException:Laravel 5.4

时间:2017-11-02 13:46:47

标签: php laravel phpunit composer-php laravel-5.4

运行phpunit时遇到此异常。我正在使用 PHPUnit 5.7.23

运行最新的 Laravel 5.4
ReflectionException: Class config does not exist
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Container/Container.php:729
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Container/Container.php:608
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Container/Container.php:575
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:728
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Container/Container.php:1172
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php:57
/home/vagrant/Code/ProcessingHub-App/vendor/myvendor/core/src/app/Providers/CoreServiceProvider.php:50
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:574
/home/vagrant/Code/ProcessingHub-App/tests/CreatesApplication.php:18
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:89
/home/vagrant/Code/ProcessingHub-App/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:66
/home/vagrant/Code/ProcessingHub-App/tests/TestCase.php:27
/home/vagrant/Code/ProcessingHub-App/tests/Unit/PassportTest.php:30

正如你所看到的那样,异常来自 CoreServiceProvider 这是我自己的ServiceProviders之一,你可以在这里看到奇怪的事情

/**
 * Register any package services.
 *
 * @return void
 */
public function register()
{
    $this->registerEloquentFactoriesFrom(__DIR__.'/../../database/factories');

    $this->mergeConfigFrom(
        __DIR__.'/../../config/fields.php', 'fields'
    );
}

fields.php 的内容:

return [];

如果我推荐$this->mergeConfigFrom()它就像魅力一样,但奇怪的是我在多个ServiceProviders和这些类中这样做不是问题。

我真的尝试了一切。

  • 正在运行:composer dump-autoload
  • 正在运行:php artisan optimize
  • 删除供应商并重新安装所有内容
  • 调试到处但没有有用的信息
  • 使用基本测试替换测试laravel中的示例无法正常工作
  • 我已经用新的简单替换了我的.env .env没有帮助。

我的问题是:

是否有人知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

在我使用新的Laravel安装进入更多的\ tests目录之后,我看到了我正在盯着看的小时数。

该应用程序试图在应用程序引导之前注册 ServiceProvider 。对不起麻烦(这不是我的代码)。     

namespace Tests;

use Illuminate\Contracts\Console\Kernel;

trait CreatesApplication
{
    /**
     * Creates the application.
     *
     * @return \Illuminate\Foundation\Application
     */
    public function createApplication()
    {
        $app = require __DIR__.'/../bootstrap/app.php';

        $app->make(Kernel::class)->bootstrap();

        $app->register(\StepOrange\Core\Providers\CoreServiceProvider::class);

        return $app;
    }
}