This changelog references the relevant changes (bug and security fixes) done to orchestra/testbench
.
Released: 2024-03-13
- Update minimum support for Testbench Core v8.23.0+. (v8.21.1...v8.23.0)
- Added
Orchestra\Testbench\Attributes\RequiresLaravel
attribute. - Added
Orchestra\Testbench\Foundation\Env::has()
method. - Added
Orchestra\Testbench\load_migration_paths()
function. - Added
Orchestra\Testbench\once()
function. - Added
usesRefreshDatabaseTestingConcern()
helper method toOrchestra\Testbench\Concerns\InteractsWithTestCase
trait.
- Validate
MYSQL_*
,MSSQL_*
,SQLITE_*
andPOSTGRES_*
environment variables before trying to override the configuration values. - Allow passing
$command
toOrchestra\Testbench\remote()
function usingarray
instead of juststring
. - Allow to following functions to accept array of paths:
Orchestra\Testbench\default_skeleton_path()
Orchestra\Testbench\package_path()
Orchestra\Testbench\workbench_path()
- Fixes
Orchestra\Testbench\Attributes\ResetRefreshDatabaseState
attribute declaration to onlyAttribute::TARGET_CLASS
.
Released: 2024-01-22
- Update minimum support for Testbench Core v8.21.1+. (v8.21.0...v8.21.1)
- Support nested configuration files.
- Fixes issue with Livewire testing where calling
$router->getRoutes()->refreshActionLookups()
caused tests to fail.
Released: 2024-01-19
- Update minimum support for Testbench Core v8.21.0+. (v8.20.0...v8.21.0)
- Added
Orchestra\Testbench\Attributes\WithImmutableDates
attribute to forceIlluminate\Support\Date
to useCarbon\CarbonImmutable
. - Added following helper functions:
Orchestra\Testbench\default_skeleton_path
Orchestra\Testbench\refresh_router_lookups
Released: 2024-01-10
- Update minimum support for Testbench Core v8.20.0+. (v8.19.0...v8.20.0)
- Bump minimum
laravel/framework
to10.40.0
.
- Flush error and exception handlers between tests using
Orchestra\Testbench\Bootstrap\HandleExceptions::forgetApp()
for PHPUnit 10.
- Run
route:cache
usingOrchestra\Testbench\remote
function. - Add following traits to
setUpTheTestEnvironmentTraitToBeIgnored
method:Orchestra\Testbench\Concerns\InteractsWithPest
Orchestra\Testbench\Concerns\InteractsWithTestCase
Released: 2023-12-28
- Update minimum support for Testbench Core v8.19.0+. (v8.18.0...v8.19.0)
- Added
Orchestra\Testbench\Features\TestingFeature
as replacement toHandlesTestingFeature
trait. - Added support for
LOG_DEPRECATIONS_WHILE_TESTING
(default totrue
) environment variables. - Add following interfaces for Attribute handling:
Orchestra\Testbench\Contracts\Attributes\AfterAll
Orchestra\Testbench\Contracts\Attributes\AfterEach
Orchestra\Testbench\Contracts\Attributes\BeforeAll
Orchestra\Testbench\Contracts\Attributes\BeforeEach
- Bump minimum
laravel/framework
to10.39.0
. - Refactor
Orchestra\Testbench\Concerns\InteractsWithPHPUnit
. - Utilise
Illuminate\Filesystem\join_paths
function.
- Deprecate
Orchestra\Testbench\Concerns\HandlesTestingFeature
trait.
Released: 2023-12-19
- Update minimum support for Testbench Core v8.18.0+. (v8.17.0...v8.18.0)
- Added
Orchestra\Testbench\Attributes\RequiresEnv
attribute to force an environment variables to be required for the test. - Added
Orchestra\Testbench\Attributes\WithConfig
attribute add a configuration value for the test. - Added
Orchestra\Testbench\Attributes\WithEnv
attribute add an environment variable value for the test. - Added
set()
andforget()
methods toOrchestra\Testbench\Foundation\Env
. - Improves support for testing with Pest using
orchestra/pest-plugin-testbench
.
- Bump minimum
laravel/framework
to10.37.3
.
Released: 2023-12-06
- Update minimum support for Testbench Core v8.17.0+. (v8.16.0...v8.17.0)
- Supports Workbench
discovers.components
configuration.
- Sync
view.paths
configuration when Workbench discover views.
Released: 2023-12-04
- Update minimum support for Testbench Core v8.16.0+. (v8.15.0...v8.16.0)
- Added
Orchestra\Testbench\Attributes\ResetRefreshDatabaseState
attribute to force refreshing database before executing the test. - Added
Orchestra\Testbench\Foundation\Bootstrap\SyncDatabaseEnvironmentVariables
bootstrap class and allow database collation to be configurable via environment variables usingMYSQL_COLLATION
,POSTGRES_COLLATION
andMSSQL_COLLATION
. - Added
encode()
method toOrchestra\Testbench\Foundation\Env
class.
- Refactor handling attributes:
- Add ability to handle actions directly from the attribute.
- Add ability to set
defer
when usingOrchestra\Testbench\Attributes\DefineDatabase
.
- Add
#[Override]
attribute to relevant methods, this requiresymfony/polyfill-php83
as backward compatibility for PHP 8.1 and 8.2. - Move
$setupHasRun
property toOrchestra\Testbench\Concerns\ApplicationTestingHooks
.
- Fixes registering discovery paths when the path doesn't exist.
- Deprecate
Orchestra\Testbench\Concerns\Database\HandlesConnections
trait.
Released: 2023-11-10
- Update minimum support for Testbench Core v8.15.0+. (v8.14.4...v8.15.0)
- Added new PHPUnit Attribute to run the default
laravel
,cache
,notifications
,queue
andsession
database migrations usingOrchestra\Testbench\Attributes\WithMigration
. - Added
Orchestra\Testbench\defined_environment_variables()
function. - Added
Orchestra\Testbench\laravel_migration_path()
function. - Added
Orchestra\Testbench\remote()
function.
- Mark the following classes as
@api
:Orchestra\Testbench\Foundation\Application
Orchestra\Testbench\Foundation\Config
Orchestra\Testbench\Foundation\Env
- Cache results from
Orchestra\Testbench\PHPUnit\AttributeParser
.
Released: 2023-11-07
- Update minimum support for Testbench Core v8.14.4+. (v8.14.0...v8.14.4)
- Add support for Workbench 8.0+.
Released: 2023-10-24
- Update minimum support for Testbench Core v8.14.0+. (v8.13.0...v8.14.0)
- Add support for Workbench 1.0+.
- Added
Orchestra\Testbench\Workbench\Workbench
to handle integrations with Workbench. - Added
Orchestra\Testbench\Foundation\Config::getWorkbenchDiscoversAttributes()
method. - Added
Orchestra\Testbench\Concerns\Database\InteractsWithSqliteDatabaseFile
trait. - Added following methods to
Orchestra\Testbench\Foundation\Application
:make()
makeFromConfig()
createFromConfig()
- Added support for PHPUnit Attribute as replacements to Annotations:
@define-env
and@environment-setup
will be replaced withOrchestra\Testbench\Attributes\DefineEnvironment
.@define-db
will be replaced withOrchestra\Testbench\Attributes\DefineDatabase
.@define-route
will be replaced withOrchestra\Testbench\Attributes\DefineRoute
.
- Fixes generating path using
Orchestra\Testbench\package_path()
andOrchestra\Testbench\workbench_path()
.
- Deprecate
Orchestra\Testbench\Concerns\WithFactories
.
- Remove
Orchestra\Testbench\Foundation\Bootstrap\StartWorkbench
, useOrchestra\Testbench\Workbench\Workbench::start()
orOrchestra\Testbench\Workbench\Workbench::startWithProviders()
instead.
Released: 2023-10-09
- Update minimum support for Testbench Core v8.13.0+. (v8.12.0...v8.13.0)
- Code refactors.
- Mark
Orchestra\Testbench\Bootstrap\LoadEnvironmentVariables
class as@internal
.
Released: 2023-10-08
- Add support for Workbench 0.5.0+.
Released: 2023-10-03
- Support Laravel Framework
10.26
.
Released: 2023-09-25
- Support Laravel Framework
10.25
.
Released: 2023-09-25
- Update minimum support for Testbench Core v8.12.0+. (v8.11.1...v8.12.0)
- Update minimum support for Workbench 0.4.0+.
- Added
cachedConfigurationForWorkbench()
toOrchestra\Testbench\Concern\InteractsWithWorkbench
trait. - Add the ability to read
TESTBENCH_WORKING_PATH
from environment variables for Testbench Dusk usage. - Supports Workbench
discovers
configuration. - Add the ability to properly forward Environment Variables.
- Add
usesSqliteInMemoryDatabaseConnection
toOrchestra\Testbench\Concerns\HandlesDatabases
trait.
Released: 2023-09-20
- Support Laravel Framework
10.24
. - Update minimum support for Testbench Core v8.11.1+. (v8.11.0...v8.11.1)
Released: 2023-09-19
- Update minimum support for Laravel Framework
10.23.1
. - Update minimum support for Testbench Core v8.11.0+. (v8.10.0...v8.11.0)
- Update minimum support for Workbench 0.3.0+.
- Added methods to
Orchestra\Testbench\Concerns\InteractsWithPublishedFiles
trait:assertMigrationFileExists
.assertMigrationFileNotExists
.
- Rename methods in
Orchestra\Testbench\Concerns\InteractsWithPublishedFiles
trait:cleanUpFiles
tocleanUpPublishedFiles
.cleanUpMigrationFiles
tocleanUpPublishedMigrationFiles
.getMigrationFile
tofindFirstPublishedMigrationFile
.
Released: 2023-09-12
- Support Laravel Framework
10.23
.
Released: 2023-09-05
- Support Laravel Framework
10.22
.
Released: 2023-08-29
- Support Laravel Framework
10.21
. - Update minimum support for Testbench Core v8.10.0+. (v8.9.1...v8.10.0)
- Add ability to automatically run default Laravel migrations using
Orchestra\Testbench\Concerns\WithLaravelMigrations
. - Add Console Actions classes:
Orchestra\Testbench\Foundation\Console\Actions\DeleteFiles
Orchestra\Testbench\Foundation\Console\Actions\DeleteDirectories
Orchestra\Testbench\Foundation\Console\Actions\EnsureDirectoryExists
Orchestra\Testbench\Foundation\Console\Actions\GeneratesFile
Released: 2023-08-22
- Support Laravel Framework
10.20
. - Update minimum support for Testbench Core v8.9.1+. (v8.9.0...v8.9.1)
- Allow using
$model
property override when extendingOrchestra\Testbench\Factories\UserFactory
.
Released: 2023-08-19
- Update minimum support for Testbench Core v8.9.0+. (v8.8.3...v8.9.0)
- Added new
workbench.welcome
configuration option.
- Allow
testbench.yaml
configuration fallback similar to.env
. - Utilise
Illuminate\Support\LazyCollection
. - Skip loading
Orchestra\Workbench\WorkbenchServiceProvider
when applyingOrchestra\Testbench\Concerns\WithWorkbench
.
Released: 2023-08-17
- Update minimum support for Testbench Core v8.8.3+. (v8.8.2...v8.8.3)
- Fixes configuration leak when running some TestCase without
Orchestra\Testbench\Concerns\WithWorkbench
.
Released: 2023-08-17
- Update minimum support for Testbench Core v8.8.2+. (v8.8.0...v8.8.2)
- Readd deprecated
Orchestra\Testbench\Foundation\Console\DevToolCommand
for integration compatibility.
- Disable Composer default timeout when using
serve
command under Composer's script.
- Remove
Orchestra\Testbench\Workbench
classes and functionality is now provided fromorchestra/workbench
.
Released: 2023-08-15
- Support Laravel Framework
10.19
.
Released: 2023-08-15
- Update minimum support for Testbench Core v8.8.0+. (v8.7.0...v8.8.0)
- Added
package:purge-skeleton
command. - Added
Orchestra\Testbench\Concerns\Database\InteractsWithSqliteDatabaseFile
trait. - Added
Orchestra\Testbench\package_path()
function. - Added support for
orchestra/workbench
.
- Rename
Orchestra\Testbench\Workbench\Bootstrap\StartWorkbench
toOrchestra\Testbench\Foundation\Bootstrap\StartWorkbench
.
- Fixes
serve
command usage. - Fixes class namespace.
Released: 2023-08-12
- Update minimum support for Testbench Core v8.7.0+. (v8.6.2...v8.7.0)
- Added following events:
Orchestra\Testbench\Foundation\Events\ServeCommandStarted
Orchestra\Testbench\Foundation\Events\ServeCommandEnded
Orchestra\Testbench\Workbench\Events\WorkbenchInstallStarted
Orchestra\Testbench\Workbench\Events\WorkbenchInstallEnded
- Change
HandlesRoutes
loading sequence to match common Laravel bootstrap steps. - Refactor
HandlesAnnotations
andInteractsWithPHPUnit
traits. - Workbench integration improvements.
- Update
workbench
configuration schema.
- Fixes
Illuminate\Foundation\Application::runningUnitTests()
detection.
Released: 2023-08-10
- Update minimum support for Testbench Core v8.6.2+. (v8.6.1...v8.6.2)
- Fixes
app()->environment()
detection when creating applicationOrchestra\Testbench\Concerns\CreatesApplication
outside ofPHPUnit
. - Fixes error
Undefined array key "autoload-dev"
when executingworkbench:install
command.
Released: 2023-08-09
- Update minimum support for Testbench Core v8.6.1+. (v8.6.0...v8.6.1)
- Add new
Orchestra\Testbench\Concerns\InteractsWithPHPUnit
to handleCreatesApplication
within PHPUnit.
- Fixes
workbench.start
path when accessing the/
route return 404. - Only Configure
TESTBENCH_APP_BASE_PATH
environment variable only when running under tests.
Released: 2023-08-08
- Support Laravel Framework
10.18
.
Released: 2023-08-08
- Update minimum support for Testbench Core v8.6.0+. (v8.5.7...v8.6.0)
- Added new Workbench support (experimental feature).
- Register routes under
/_workbench
prefix. - Automatically run configured seeds when executing
migrate:fresh
andmigrate:refresh
- Bind
Orchestra\Testbench\Contracts\Config
to IoC Container and introduce the newOrchestra\Testbench\workbench
andOrchestra\Testbench\workbench_path
helper function. - Add
workbench:install
,workbench:create-sqlite-db
andworkbench:drop-sqlite-db
commands.
- Register routes under
- Add new
Orchestra\Testbench\Concerns\WithWorkbench
to automatically loads configuration fromtestbench.yaml
when running tests.
- Bump minimum
laravel/framework
to10.17.0
.
- Deprecated
package:devtool
,package:create-sqlite-db
andpackage:drop-sqlite-db
commands.
Released: 2023-08-01
- Support Laravel Framework
10.17
.
Released: 2023-07-25
- Support Laravel Framework
10.16
.
Released: 2023-07-11
- Support Laravel Framework
10.15
.
Released: 2023-06-27
- Bump minimum
laravel/framework
to10.14.0
.
Released: 2023-06-14
- Suspense support for Laravel Framework
10.14
.
Released: 2023-06-13
- Bump minimum
laravel/framework
to10.13.5
. - Update minimum support for Testbench Core v8.5.7+. (v8.5.6...v8.5.7)
Released: 2023-06-07
- Support Laravel Framework
10.14
. - Bump minimum
laravel/framework
to10.10.0
. - Update minimum support for Testbench Core v8.5.6+. (v8.5.0...v8.5.6)
Released: 2023-05-30
- Support Laravel Framework
10.13
.
Released: 2023-05-24
- Support Laravel Framework
10.12
.
Released: 2023-05-16
- Support Laravel Framework
10.11
.
Released: 2023-05-09
- Support Laravel Framework
10.10
.
Released: 2023-04-25
- Support Laravel Framework
10.9
.
Released: 2023-04-18
- Bump minimum
laravel/framework
to10.8.0
. - Update minimum support for Testbench Core v8.5.0+. (v8.4.2...v8.5.0)
- Added
Orchestra\Testbench\after_resolving
helper function.
- Update skeleton to match v10.1.0.
- Bump minimum
laravel/framework
to10.8.0
.
Released: 2023-04-14
- Support PHPUnit
10.1
. - Update minimum support for Testbench Core v8.4.2+. (v8.4.0...v8.4.2)
- Supports PHPUnit 10.1.
- Update skeleton to match v10.0.6.
- Avoid declaring
Orchestra\Testbench\Concerns\Testing::setUpTheTestEnvironmentTraitToBeIgnored()
asabstract
method.
Released: 2023-04-11
- Support Laravel Framework
10.7
.
Released: 2023-04-05
- Update minimum support for Testbench Core v8.4.0+. (v8.3.1...v8.4.0)
- Add
setUpTheTestEnvironmentTraitToBeIgnored()
method to determinesetup<Concern>
andteardown<Concern>
with imported traits that should be used on a given trait. - Bump minimum
laravel/framework
to10.6.1
.
Released: 2023-04-04
- Support Laravel Framework
10.6
.
Released: 2023-04-03
- Update minimum support for Testbench Core v8.3.1+. (v8.3.0...v8.3.1)
- Fixes
Orchestra\Testbench\Foundation\Config::addProviders()
usage. - Fixes
Orchestra\Testbench\transform_relative_path()
logic.
Released: 2023-04-01
- Update minimum support for Testbench Core v8.3.0+. (v8.2.0...v8.3.0)
- Added
Orchestra\Testbench\Foundation\Bootstrap\LoadMigrationsFromArray
class to handle loading migrations fromtestbench.yaml
.- You can now disable loading default migrations using either
migrations: false
intestbench.yaml
or addingTESTBENCH_WITHOUT_DEFAULT_MIGRATIONS=(true)
environment variable.
- You can now disable loading default migrations using either
- Added additional configuration options to
testbench.yaml
:migrations: <bool|array>
bootstrappers: <array>
- Added
Orchestra\Testbench\parse_environment_variables()
function. - Added
Orchestra\Testbench\transform_relative_path()
function.
env
configuration fromtestbench.yaml
with have higher priority thandefault_environment_variables()
.- Disable
Dotenv\Repository\Adapter\PutenvAdapter
when generating environment variable on the fly usingOrchestra\Testbench\Foundation\Application
.
- Fixes console output when an exception is thrown before application can be bootstrapped.
- Fixes some configuration value leaks between tests due to the way it set environment values including
APP_KEY
,APP_DEBUG
etc.
Released: 2023-03-27
- Update minimum support for Testbench Core v8.2.0+. (v8.0.5...v8.2.0)
- Add supports for
setup<Concern>
andteardown<Concern>
with imported traits.
- Move PHPUnit 9 support to legacy:
- Recommend using PHPUnit 10 whenever possible.
- Remove deprecation handling support for PHPUnit 9.
- Only recommend using
package:test
and--parallel
with PHPUnit 10.
Warning: Breaking change is possible if your package contains any traits with
setup<TraitClassName>
orteardown<TraitClassName>
This version now will automatically run those methods during application bootstrap and terminate to be consistent with Laravel Framework implementations.
Released: 2023-03-23
- Avoid database connection from eager loaded via
spatie/laravel-ray
.
Released: 2023-03-18
- Update minimum support for Laravel Framework to
v10.4.1
.
Released: 2023-03-18
- Update minimum support for Laravel Framework to
v10.4.0
. - Support for Testbench Core to
v8.1.0
.
Released: 2023-03-10
- Update minimum support for Testbench Core v8.0.5+. (v8.0.4...v8.0.5)
- Update minimum support for Laravel Framework to
v10.3.3
.
Released: 2023-03-09
- Update minimum support for Testbench Core v8.0.4+. (v8.0.2...v8.0.4)
- Update minimum support for Laravel Framework to
v10.3.1
.
Released: 2023-03-08
- Support Laravel Framework
10.3
.
Released: 2023-03-02
- Support Laravel Framework
10.2
.
Released: 2023-02-24
- Update minimum support for Laravel Framework to
v10.1.5
.
Released: 2023-02-24
- Update minimum support for Laravel Framework to
v10.1.4
.
Released: 2023-02-21
- Update minimum support for Testbench Core v8.0.2+. (v8.0.1...v8.0.2)
- Support Laravel Framework
10.1
.
- Fixes
app.asset_url
config default value from'/'
tonull
.
Released: 2023-02-17
- Update minimum support for Testbench Core v8.0.1+. (v8.0.0...v8.0.1)
- Bump minimum
laravel/framework
to10.0.3
. - Use available
$_composer_autoload_path
fromcomposer-runtime-api
.
Released: 2023-02-14
- Added support for PHPUnit 10.
- Update support for Laravel Framework v10.
- Increase minimum PHP version to 8.1 and above (tested with 8.1 and 8.2).