prev | next | ||||
---|---|---|---|---|---|
false |
|
Testbench simplifies the process to create feature and integration tests for your Laravel packages without massive configuration and build steps.
[[toc]]
You can install Testbench using the following command:
composer require --dev "orchestra/testbench"
Next, you can run the following command to scaffold your package with the recommended setup:
vendor/bin/testbench workbench:install
Laravel | Testbench |
---|---|
5.x.x | 3.x.x |
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 Component, all you need to do is extend Orchestra\Testbench\TestCase
instead of PHPUnit\Framework\TestCase
. The fixture app
booted by Orchestra\Testbench\TestCase
is predefined to follow the base application skeleton of Laravel.
class TestCase extends \PHPUnit\Framework\TestCase # [!code --]
class TestCase extends \Orchestra\Testbench\TestCase # [!code ++] # [!code focus]
{
//
}
You can separate your tests in your phpunit.xml
file by providing different test suites, allowing you to run your Feature tests on demand.
For example:
<testsuites> # [!code focus]
<testsuite name="Feature"> # [!code ++:3] # [!code focus:3]
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites> # [!code focus]
Run only your feature tests by running PHPUnit with the --testsuite=Feature
option.
vendor/bin/phpunit --testsuite=Feature
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 TestCase extends \Orchestra\Testbench\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