Browser testing for October CMS, powered by Laravel Dusk.
To install with Composer, run from your project root
composer require rainlab/dusk-plugin
If using the latest version of Chrome, install the latest version of ChromeDriver for your OS.
php artisan dusk:chrome-driver
Otherwise, check the version of the Chrome browser you have installed, and install a given version of ChromeDriver for your OS.
php artisan dusk:chrome-driver 86
To make your first test, create a new class inside the tests/browser folder. The following will authenticate to the backend panel and sign out again.
// File: plugins/october/test/tests/browser/AuthenticationTest.php
//
class AuthenticationTest extends BrowserTestCase
{
public function testAuthentication()
{
$this->browse(function($browser) {
$browser
->visit('/admin')
->waitForLocation('/admin/backend/auth/signin')
->assertTitleContains('Administration Area |')
->type('login', env('DUSK_ADMIN_USER', 'admin'))
->type('password', env('DUSK_ADMIN_PASS', 'admin'))
->check('remember')
->press('Login');
$browser
->waitForLocation('/admin')
->assertTitleContains('Dashboard |')
->click('#layout-mainmenu .mainmenu-account > a')
->clickLink('Sign Out');
$browser
->waitForLocation('/admin/backend/auth/signin')
->assertTitleContains('Administration Area |');
});
}
}
The .env.dusk
environment file can be used for Dusk specific configuration. It is advisable to include the application URL to test in this file.
APP_URL=http://mylocalsite.dev/
Use the test:dusk
artisan command to run the dusk tests for a plugin code (first argument).
php artisan test:dusk <PLUGIN CODE>
The following runs tests for the October.Test plugin.
php artisan test:dusk october.test
Use the --browse
to enable interactive mode.
php artisan test:dusk october.test --browse
Use the --filter
option to run a single test where the value is the test class name.
php artisan test:dusk october.test --filter=PeopleTest
Follow these instructions to get a test up and running.
-
Install the latest version of Chrome browser
-
Install a fresh copy of October CMS
-
Install this plugin
composer require rainlab/dusk-plugin
-
Install latest chrome driver
php artisan dusk:chrome-driver
-
Install Test plugin
php artisan plugin:install October.Test --from=https://github.com/octobercms/test-plugin
-
Create a file
.env.dusk
and includeAPP_URL=http://yourlocaldev.tld
inside -
Run tests
php artisan test:dusk october.test --browse
This plugin is an official extension of the October CMS platform and is free to use if you have a platform license. See EULA license for more details.