prev | next |
---|
Testbench Dusk is built on top of Testbench to provide support running browser-based tests for your Laravel packages using Laravel Dusk.
[[toc]]
You can install Testbench using the following command:
composer require --dev "orchestra/testbench-dusk"
Next, you can run the following command to scaffold your package with the recommended setup:
vendor/bin/testbench workbench:install
Laravel | Testbench Dusk |
---|---|
6.x | 4.x |
7.x | 5.x |
8.x | 6.x |
9.x | 7.x |
10.x | 8.x |
11.x | 9.x |
Please refer to Configuration documentation for further details.
To use Testbench Dusk Component, all you need to do is extend Orchestra\Testbench\Dusk\TestCase
instead of PHPUnit\Framework\TestCase
. The fixture app
booted by Orchestra\Testbench\Dusk\TestCase
is predefined to follow the base application skeleton of Laravel.
class DuskTestCase extends \PHPUnit\Framework\TestCase # [!code --]
class DuskTestCase extends \Orchestra\Testbench\Dusk\TestCase # [!code ++] # [!code focus]
{
//
}
Browser tests can take a while to run, so you could also separate your test suite in your phpunit.xml
file by providing different test suites, allowing you to run your Browser tests on demand.
<testsuites>
<testsuite name="Browser"> # [!code ++:3] # [!code focus:3]
<directory suffix="Test.php">./tests/Browser</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
Run only your browser tests by running PHPUnit with the --testsuite=Browser
option.
vendor/bin/phpunit --testsuite=Browser
::: tip Using separate PHPUnit Configuration
Alternatively, you can also create a separate PHPUnit Configuration dedicated, we recommend using phpunit.dusk.xml
for this purpose.
:::
Testbench will use the configuration values defined in testbench.yaml
and use its value when the TestCase
class uses Orchestra\Testbench\Concerns\WithWorkbench
trait:
use Orchestra\Testbench\Concerns\WithWorkbench; # [!code ++] # [!code focus]
class DuskTestCase extends \Orchestra\Testbench\Dusk\TestCase
{
use WithWorkbench; # [!code ++] # [!code focus]
}
Using WithWorkbench
will make TestCase
uses providers
configuration value from testbench.yaml
:
providers:
- Laravel\Sanctum\SanctumServiceProvider
- Workbench\App\Providers\WorkbenchServiceProvider
Using WithWorkbench
will make TestCase
uses laravel
configuration value from testbench.yaml
:
laravel: ./skeleton
Before going through the rest of this documentation, please take some time to read the following documentation: