unglud / dusker
Stand alone Laravel Dusk test suit, which do not require Laravel framework itself.
Installs: 1 448
Dependents: 0
Suggesters: 0
Security: 0
Stars: 32
Watchers: 4
Forks: 2
Open Issues: 1
Requires
- php: >=7.0
- composer/composer: ^1.0
- illuminate/config: ^5.5
- illuminate/container: ^5.5
- illuminate/events: ^5.5
- illuminate/filesystem: ^5.5
- illuminate/support: ^5.5
- laravel/dusk: ^2.0
- phpunit/phpunit: ^6.0
- symfony/filesystem: ^3.3
- symfony/http-kernel: ^3.3
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- mikey179/vfsstream: ^1.6
- mockery/mockery: ^1.0
This package is not auto-updated.
Last update: 2024-10-27 05:30:50 UTC
README
Stand-alone Laravel Dusk test suit, which does not require Laravel framework itself.
Laravel Dusk provides an expressive, easy-to-use browser automation and testing API. By default, Dusk does not require you to install JDK or Selenium on your machine. Instead, Dusk uses a standalone Chrome driver. However, you are free to utilize any other Selenium driver you wish.
Installation
To get started, you should add the unglud/dusker Composer dependency to your project:
composer require --dev unglud/dusker
Next, you need to copy all necessary files to your working directory. The command below will do it for you. It creates (or use existing) tests
directory and put files there. Also, it copies artisan
console utility to your project root directory. If you already have this file, it will be overwritten!
The file .env.dusk
will be in your project root as well, which you will need rename to .env
or copy it content to your existing one.
composer run-script post-install-cmd -d ./vendor/unglud/dusker
If you would like these files to update automatically each time you update this package, you can add this to your composer.json
file:
"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"
}
}
As you notice file .env.dusk
not included there to simplify things.
After installing the package, Artisan commands will be available from your root project. Run the dusk:install
Artisan command:
php artisan dusk:install
Now try to run test to make sure everything works
php artisan dusk
How to use
After this part you can use official documentation for Dusk on the Laravel website, `cuz it will work exactly as it was designed by Taylor Otwell.
Authentication
Often, you will be testing pages that require authentication. You can use Dusk's loginAs method in order to avoid interacting with the login screen during every test. The loginAs method accepts a user login
and password
:
$this->browse(function (Browser $browser) {
$browser->loginAs('username', 'password')
->visit('/home');
});
After using the loginAs method, the user session will be maintained for all tests within the file.
Authentication Setup
Since we do not have access to native Auth
and Router
from Laravel, because we use it without Laravel we need to setup login functionality.
In .env
you should specify LOGIN_ENDPOINT
-- path to your public directory where Dusker will copy the file which will be accessible from a browser. By default its http://example.com/_dusker/login.php
. Second LOGIN_IMPLEMENTATION
-- path to your class, which utilize logic of your project allowing Authentication. You can use /tests/LoginManagerExample.php
as an example of how it should look.
License
Dusker is released under the MIT Licence. See the bundled LICENSE file for details.