独立的 Laravel Dusk 测试套件,不需要 Laravel 框架本身。
Laravel Dusk 提供了一个富有表现力、易于使用的浏览器自动化和测试 API。默认情况下,Dusk 不需要您在计算机上安装 JDK 或 Selenium。相反,Dusk 使用独立的 Chrome 驱动程序。但是,您可以自由使用您想要的任何其他 Selenium 驱动程序。
首先,您应该将 unglud/dusker Composer 依赖项添加到您的项目中:
composer require --dev unglud/dusker
接下来,您需要将所有必需的文件复制到您的工作目录。下面的命令将为您完成此操作。它创建(或使用现有的) tests
目录并将文件放在那里。此外,它将artisan
控制台实用程序复制到您的项目根目录。如果您已有此文件,它将被覆盖!
文件.env.dusk
也将位于您的项目根目录中,您需要将其重命名为.env
或将其内容复制到现有的根目录中。
composer run-script post-install-cmd -d ./vendor/unglud/dusker
如果您希望这些文件在每次更新此包时自动更新,您可以将其添加到您的composer.json
文件中:
"scripts": { "post-install-cmd": [ "DuskerCopyFile::copy" ], "post-update-cmd": [ "DuskerCopyFile::copy" ] }, "extra": { "copy-file": { "vendor/unglud/dusker/src/example/": "tests/", "vendor/unglud/dusker/artisan": "artisan" } }
正如您所注意到的,为了简化事情,文件.env.dusk
没有包含在其中。
安装该软件包后,Artisan 命令将从您的根项目中可用。运行dusk:install
Artisan 命令:
php artisan dusk:install
现在尝试运行测试以确保一切正常
php artisan dusk
在这部分之后,您可以使用 Laravel 网站上的 Dusk 官方文档,因为它将完全按照 Taylor Otwell 的设计工作。
通常,您将测试需要身份验证的页面。您可以使用 Dusk 的 loginAs 方法,以避免在每次测试期间与登录屏幕交互。 loginAs 方法接受用户login
和password
:
$this->browse(function (Browser $browser) { $browser->loginAs('username', 'password') ->visit('/home'); });
使用 loginAs 方法后,将为文件中的所有测试维护用户会话。
由于我们无法从 Laravel 访问本机Auth
和Router
,因为我们在没有 Laravel 的情况下使用它,所以我们需要设置登录功能。在.env
中,您应该指定LOGIN_ENDPOINT
-- 公共目录的路径,Dusker 将在其中复制可从浏览器访问的文件。默认情况下是http://example.com/_dusker/login.php
。第二个LOGIN_IMPLEMENTATION
-- 类的路径,它利用允许身份验证的项目逻辑。您可以使用/tests/LoginManagerExample.php
作为其外观的示例。
Dusker 是根据 MIT 许可证发布的。有关详细信息,请参阅捆绑的许可证文件。