As part of the push to deprecate SimpleTest and use PHPUnit as the test runner in Drupal 8, there is the \Drupal\Tests\BrowserTestBase
class. The BrowserTestBase
provides a Mink runner that tests web pages in Drupal. Unlike kernel tests, which require a database and can be run via PHPUnit as well, browser tests use your default database connection. I prefer to run my tests with SQLite as I do not need to have my Docker containers running.
The simplest solution I have found, thus far, is to check the HTTP_USER_AGRENT
if ($_SERVER['HTTP_USER_AGENT'] == 'Drupal command line') { $databases['default']['default'] = array( 'driver' => 'sqlite', 'database' => '/tmp/test.sqlite', 'namespace' => 'Drupal\\Core\\Database\\Driver\\sqlite', ); }
With this, and running php -S localhost:8080
I'm able to write my Drupal Commerce browser tests without having my normal Docker containers running.
Want more? Sign up for my weekly newsletter