Laravel Dusk Is Coming to Laravel 5.4
Published on by Diaa Fares
Laravel Dusk is a new tool that will be introduced in Laravel 5.4 to solve this problem.
Dusk is utilizing ChromeDriver and Facebook Php-webdriver for doing end-to-end tests. It can work with any Selenium browser, but it comes with ChromeDriver by default which will save you from installing JDK or Selenium. It makes Dusk very easy to use without the need to go through the tough process of setting up Selenium and starting the server every time. Furthermore, Taylor Otwell mentions Dusk tests are running faster than Selenium.
Also, Dusk will save screenshots of your failed tests automatically! You can see what the page looked like and what went wrong.
Another nice feature is that it will provide handy helper methods like loginAs, which allows you to give it a user instance. It will log the user in, and the test will go straight to any authenticated URL directly without going through the login screen every time.
Dusk will allow you to open multiple browser windows per test which will make it easy to test apps which have socket integration. You can open two windows and interact with the first and see the result in the second.
Otwell has also provided some information about the Dusk testing environment; your app root will contain a .env.dusk file to define your testing environment. To run your Dusk test, you will not use PHPUnit directly. Instead, you will call a Dusk artisan command which will proxy down to PHPUnit and backup your .env file. Then, it will move the .env.dusk file to be the environment being used for your Dusk test. When finished, it will restore your real .env file back to its place.
Note that you can use the old BrowserKit testing if you have an app using Laravel 5.3 and want to upgrade to 5.4 without losing your current tests. The Laravel BrowserKit Testing package will provide the Laravel 5.3 style “BrowserKit” testing on Laravel 5.4.