ExampleTest.php 中未找到类“Tests\DuskTestCase”

Lar*_*isa 5 laravel laravel-dusk

我正在尝试运行 Laravel Dusk 测试,但是当我运行测试时,会弹出一个带有此消息的新 Chrome 选项卡。

Fatal error: Class 'Tests\DuskTestCase' not found in path-to-project\tests\Browser\ExampleTest.php on line 9
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所做的只是 runcomposer require --dev laravel/dusk:^1.0php artisan dusk:install.

这是我的 ExampleTest.php(Laravel 是如何设置的)

<?php

namespace Tests\Browser;

use Laravel\Dusk\Chrome;
use Tests\DuskTestCase;
use Laravel\Dusk\DuskServiceProvider;

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function ($browser) {
            $browser->visit('/')
                ->assertSee('Laravel');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

DuskTestCase.php 也和 Laravel 一样,有命名空间namespace Tests;

我正在使用 Laravel 5.4 和 Dusk 1.0。我正在通过 PhpStorm 运行测试,使用这里描述的解决方法。

任何人都知道为什么 DuskTestCase 似乎无法找到,即使它似乎设置正确?提前致谢。

lat*_*aee 5

在composer.json中:

加入"Tests\\": "tests/"

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Tests\\": "tests/"
        }
    },
Run Code Online (Sandbox Code Playgroud)

然后,运行composer dump-autoload以重新加载您的包。


Bar*_*art 1

如果composer dump-autoload不能解决问题,您可以尝试这些步骤。

  1. 在浏览器中访问主页并检查其是否正确呈现。如果没有,那么您的网络服务器配置可能有问题(提示:您的项目子目录不是文档根目录吗?)。
  2. 您可以通过 尝试 Laravel 内置服务器php artisan serve。如果现在可以在您的浏览器中访问主页,那么您可以再次尝试黄昏。在这种情况下,请记住更新您的 .env 文件以匹配 APP_URL= http://127.0.0.1:8000,并从另一个 cli 窗口运行 php artisan dusk ,因为php artisan serve也需要运行。