unglud/dusker

独立的Laravel Dusk测试套件,无需Laravel框架本身。

v2.1.1 2017-11-08 12:20 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:02:50 UTC


README

独立的Laravel Dusk测试套件,无需Laravel框架本身。

Build Status Total Downloads Latest Stable Version License

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": [
    "Dusker\\CopyFile::copy"
  ],
  "post-update-cmd": [
    "Dusker\\CopyFile::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文档 Laravel网站,因为它的使用方法将与Taylor Otwell 设计的方式完全相同。

身份验证

通常,你会测试需要身份验证的页面。你可以使用Dusk的loginAs方法来避免在每次测试中与登录屏幕交互。loginAs方法接受用户 loginpassword

$this->browse(function (Browser $browser) {
    $browser->loginAs('username', 'password')
          ->visit('/home');
});

使用loginAs方法后,用户会话将在文件中的所有测试中保持。

身份验证设置

由于我们没有访问Laravel的本地 AuthRouter,因为我们在没有Laravel的情况下使用它,我们需要设置登录功能。在 .env 中,你应该指定 LOGIN_ENDPOINT -- Dusker将复制文件的可访问路径,该文件位于你的公共目录中。默认为 http://example.com/_dusker/login.php。第二个 LOGIN_IMPLEMENTATION -- 利用你的项目逻辑允许身份验证的类的路径。你可以使用 /tests/LoginManagerExample.php 作为其外观的示例。

许可证

Dusker是在MIT许可证下发布的。有关详细信息,请参阅捆绑的 LICENSE 文件。