【发布时间】:2018-04-15 01:45:25
【问题描述】:
运行phpunit 时出现此异常。我正在使用 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,这是我自己的 ServiceProvider 之一,您可以在这里看到没有什么奇怪的事情发生
/**
* 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 中的基本 testExample 替换 test 也不起作用
- 我已经用一个新的简单 .env 替换了我的 .env 并没有帮助。
我的问题是:
有谁知道我该如何解决这个问题。
【问题讨论】:
-
或者检查你的 .env 文件是否有没有 "" 的值!!见here
-
@Devon 我已经研究过这个问题,但它并没有解决我的问题。我正确地使用了
Teardown()和setUp(),至少我是这么认为的。它以前很好用!看起来它在$this->mergeConfigFrom()方法上中断了。 -
@Maraboc 谢谢,但我已经用新的简单 .env 替换了我的 .env 并没有帮助。
-
请执行此操作 composer dump-autoload -o
标签: php laravel phpunit composer-php laravel-5.4