Laravel Dusk - 类配置不存在

时间:2017-02-03 13:15:50

标签: php laravel laravel-dusk

最近将一个5.3项目升级到5.4,看起来一切都很好。

今天我开始实施Dusk但是在运行示例测试时遇到了问题

☁  footy-finance [5.4] ⚡ php artisan dusk
PHPUnit 6.0.0 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 162 ms, Memory: 6.00MB

There was 1 error:

1) Tests\Browser\ExampleTest::testBasicExample
ReflectionException: Class config does not exist

/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Container/Container.php:681
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Container/Container.php:565
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:105
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:263
/Users/owen/Sites/footy-finance/vendor/laravel/dusk/src/TestCase.php:203
/Users/owen/Sites/footy-finance/vendor/laravel/dusk/src/TestCase.php:40

我看过TestCase.php及其

的第40行
public function baseUrl()
{
    return config('app.url');
}

所以它看起来与全局config帮助器有什么关系,任何人都有任何想法?

我正在运行

  • PHP 7.0.14
  • Laravel / Framework 5.4.8
  • Laravel / Dusk 1.0.5

可以看到完整的composer.lock https://gist.github.com/OwenMelbz/c05172b33f6eb4483e37a56469b53722

手指越过你们,你们有一些想法!

干杯:)

7 个答案:

答案 0 :(得分:27)

我在日志中遇到此错误

Class config does not exist

我的问题是在.env文件中我按以下方式设置了配置变量:

APP_NAME=Application Name

注意空间。当我把它更改为:

APP_NAME="Application Name" 

问题得到解决

答案 1 :(得分:5)

问题在于.env文件 APP_NAME

在原始文件中以这种方式编写>>> APP_NAME =申请名称

像这样 APP_NAME ="应用程序名称"

答案 2 :(得分:2)

就我而言,此解决方案有效:

1)删除bootstrap/cache文件夹中的所有内容
2)运行composer dump命令

答案 3 :(得分:1)

对于遇到此问题的其他人。

我更喜欢在安装PHPUnit 6的作曲家文件中使用stable set。

这是今天稳定的#34; - 因此它在作曲家更新期间安装。

降级到PHPUnit 5修复了这个问题 - 所以今天启动它的时间很糟糕。

答案 4 :(得分:0)

我今天在Lumen应用程序中有这个。经过一番调查和游戏后,我发现这是因为在PHPStorm中它将--no-configuration选项添加到phpunit命令中,因为我没有为IDE中的项目配置我的PHPUnit设置。 / p>

我点击了运行>修改配置'然后在'默认值>下PHPUnit '单击“使用备用配置文件:”选项最右侧的小按钮,并将“默认配置文件:”设置为项目phpunit.xml的完整路径。

希望这有帮助!

答案 5 :(得分:0)

我也遇到了这个问题。对我来说,这是由于在dataProvider方法中调用config()函数引起的。在createApplication()方法初始化应用程序并填充DI容器之前,将调用DataProvider。因此,config()失败了,因为辅助函数中的app('config')调用无法从容器中解析config类。

答案 6 :(得分:0)

我只是遇到了同样的问题,在我的情况下,.env全部干净,没有展开的空白空间。

在编写/调试测试用例时,在该测试中使用setup()方法,而忘记调用parent::setup()作为该函数的第一条语句时,也会发生此错误消息。

protected $stuf;

function setup() {
    parent::setup();

    $this->stuf = 'stuf';
}

当您收到此错误消息时,我发现了非常有用的信息here