Application area attribute
Configure a test environment in scope of the particular application area with the AppArea
annotation.
Format
Copied to your clipboard#[AppArea(string $area)]
Parameters
- area
- Can take any value from the list below
\Magento\Framework\App\Area::AREA_GLOBAL
\Magento\Framework\App\Area::AREA_ADMINHTML
\Magento\Framework\App\Area::AREA_FRONTEND
\Magento\Framework\App\Area::AREA_WEBAPI_REST
\Magento\Framework\App\Area::AREA_WEBAPI_SOAP
\Magento\Framework\App\Area::AREA_CRONTAB
\Magento\Framework\App\Area::AREA_GRAPHQL
- Can take any value from the list below
Fallback sequence
- Test method
- Test class
- Default application area, which is
global
Test class attribute
A test class attribute enables the specified application area for all tests in the test class.
Test method attributes override test class attributes.
Example:
Copied to your clipboard#[AppArea('adminhtml')]namespace Vendor\Module;class ClassToTest extends \PHPUnit\Framework\TestCase{public function testOne(){//...}#[AppArea('frontend')]public function testTwo(){//...}public function testThree(){//...}}
testOne()
and testThree()
are set to run in scope of the adminhtml
application area, whereas testTwo()
is set to run in scope of the frontend
area.
Test method attribute
A test method attribute is used to configure the environment in scope of the specified application area for the test method. The application is reinitialized in the corresponding scope each time you specify a different area.
Example:
Copied to your clipboardnamespace \Vendor\Module;class ClassToTest extends \PHPUnit\Framework\TestCase{// executes the test in scope of the global areapublic function testOne(){//...}// reinitializes the application and executes the test in scope of the frontend area#[AppArea('frontend')]public function testTwo(){//...}// reinitializes the application and executes the test in scope of the adminhtml area#[AppArea('adminhtml')]public function testThree(){//...}// reinitializes the application and executes the test in scope of the global areapublic function testFour(){//...}// executes in scope of the global areapublic function testFive(){//...}}