獨立的 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 許可證發布的。有關詳細信息,請參閱捆綁的許可證文件。