>我在运行phpunit
时出现此异常。我正在运行最新的 Laravel 5.4 和 PHPUnit 5.7.23
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,这是我自己的服务提供商之一,正如您在此处看到的那样,那里没有什么奇怪的事情发生
/**
* Register any package services.
*
* @return void
*/
public function register()
{
$this->registerEloquentFactoriesFrom(__DIR__.'/../../database/factories');
$this->mergeConfigFrom(
__DIR__.'/../../config/fields.php', 'fields'
);
}
字段内容.php:
return [];
如果我赞扬$this->mergeConfigFrom()
它就像一个魅力,但奇怪的是我在多个服务提供商中这样做,并且在这些类中这不是问题。
我真的尝试了一切。
- 跑步:
composer dump-autoload
- 跑步:
php artisan optimize
- 删除供应商并重新安装所有内容
- 到处调试,但没有有用的信息
- 用基本测试替换测试拉拉维尔的例子也不起作用
- 我已经用一个新的简单.env替换了我的.env没有帮助。
我的问题是:
安妮知道我该如何解决这个问题吗?
在我用一个新的Laravel安装更多地查看\tests目录之后,我看到了我盯着几个小时的东西。
应用程序在引导应用程序之前尝试注册服务提供商。很抱歉给您带来麻烦(这不是我的代码)。
namespace Tests;
use IlluminateContractsConsoleKernel;
trait CreatesApplication
{
/**
* Creates the application.
*
* @return IlluminateFoundationApplication
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
$app->register(StepOrangeCoreProvidersCoreServiceProvider::class);
return $app;
}
}