【发布时间】:2018-03-02 18:29:41
【问题描述】:
我在 Laravel 5.5 上遇到了一个奇怪的问题。我正在使用 PhpStorm 并尝试使用它在我的 Vagrant 主机上对 PHPUnit 进行 phpunit 调用,如下所示:
vagrant:///Users/mymachine/Webdev/project/usr/bin/php -dxdebug.coverage_enable=1 /home/vagrant/project/vendor/phpunit/phpunit/phpunit --coverage-clover /home/vagrant/.phpstorm_helpers/project_AdminLoginTest_coverage --bootstrap /home/vagrant/project/bootstrap/app.php --configuration /home/vagrant/project/phpunit.xml 测试\集成\身份验证\AdminLoginTest /home/vagrant/project/tests/Integration/Authentication/AdminLoginTest.php --团队城市
我已将我的默认配置文件定义为 Laravel 默认附带的 phpunit.xml 文件,并且正常运行测试无覆盖工作正常。每当我尝试利用代码覆盖率时,它就会开始失败并出现以下错误:
未捕获的错误:在 /home/vagrant/project/app/routes.php:5 中找不到类“Route”
这是因为它没有正确加载 Facade,甚至可能无法启动 Laravel。
以前有人做过这个吗?如果有怎么办?
我正在使用setUp() 调用,它是这样定义的
protected function setUp()
{
parent::setUp(); // Must run first, Laravel is set up using this parent call //
/** @var AdminModel $user */
$this->user = $this->createAdmin();
}
我确实首先从父级运行setUp(),因为它应该调用createApplication(),如果我没记错的话,应该负责启动 Laravel。
我也在我的 Vagrant 机器上的 FPM 和 CLI 上设置了 Xdebug,PhpStorm 成功报告它可以通过 CLI 在我的 Vagrant 机器上检测到 Xdebug 2.5.5 em>,所以我排除了这种可能性,除非我需要为 Coverage 安装额外的东西。
我的phpunit.xml 还在它的引导程序定义中设置了bootstrap/app.php 文件,这是 Laravel 的默认设置,所以它应该可以正常工作,而且它没有覆盖的事实让我感到困惑。
我在这里遗漏了什么吗?谢谢您的帮助。如果我遗漏了您需要的一些细节,请告诉我。
【问题讨论】:
标签: php laravel phpunit phpstorm