Laravel Dusk 测试用例是否需要 createApplication() 方法?

Is createApplication() method required for Laravel Dusk test cases?

我正在尝试在 Laravel 5.4 应用程序中设置 Laravel Dusk。执行 php artisan dusk 不会启动浏览器 window,如 this guide 所示,我正在尝试找出原因。 PHPStorm 抱怨在执行 php artisan dusk:install 命令期间创建的 ExampleTest class 必须实现 createApplication() 方法,但我找不到任何关于此方法的提及:

  1. The official Laravel guide
  2. This Scotch.io guide
  3. 使用 PHPStorm 的搜索功能搜索 Laravel 应用程序目录中的所有文件。

ExampleTestclass如下:

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

是的,这是必需的。

解决这个问题的一种方法是简单地将特征中包含的代码(来自 Laravel 的更高版本)添加到您的 DuskTestCase.

/**
 * Creates the application.
 *
 * @return \Illuminate\Foundation\Application
 */
public function createApplication()
{
    $app = require __DIR__.'/../bootstrap/app.php';

    $app->make(Kernel::class)->bootstrap();

    return $app;
}

或者,您可以创建 CreatesApplication 特征,将上面的代码粘贴到其中,然后 use CreatesApplication 粘贴到您的 DuskTestCase.